# Class XPathUtil

java.lang.Object
org.apache.jmeter.util.XPathUtil

public class XPathUtil extends Object
This class provides a few utility methods for dealing with XML/XPath.

## Method Summary

Modifier and Type
Method
Description
`static void`
`computeAssertionResult(AssertionResult result, Document doc, String xPathExpression, boolean isNegated)`
Fills result
`static final String`
`formatXml(String xml)`
Formats XML
`static Document`
`makeDocument(InputStream stream, boolean validate, boolean whitespace, boolean namespace, boolean tolerant, boolean quiet, boolean showWarnings, boolean report_errors, boolean isXml, boolean downloadDTDs)`
Utility function to get new Document
`static Document`
`makeDocument(InputStream stream, boolean validate, boolean whitespace, boolean namespace, boolean tolerant, boolean quiet, boolean showWarnings, boolean report_errors, boolean isXml, boolean downloadDTDs, OutputStream tidyOut)`
Utility function to get new Document
`static DocumentBuilder`
`makeDocumentBuilder(boolean validate, boolean whitespace, boolean namespace, boolean downloadDTDs)`
Create a DocumentBuilder using the makeDocumentFactory func.
`static Tidy`
`makeTidyParser(boolean quiet, boolean showWarnings, boolean isXml, StringWriter stringWriter)`
Create a Tidy parser with the specified settings.
`static void`
`putValuesForXPathInList(Document document, String xPathQuery, List<String> matchStrings, boolean fragment)`
Put in matchStrings results of evaluation
`static NodeList`
`selectNodeList(Document document, String xPathExpression)`
Extract NodeList using expression
`static void`
`validateXPath(Document document, String xpathString)`
Validate xpathString is a valid XPath expression

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### makeDocumentBuilder

public static DocumentBuilder makeDocumentBuilder(boolean validate, boolean whitespace, boolean namespace, boolean downloadDTDs) throws ParserConfigurationException
Create a DocumentBuilder using the makeDocumentFactory func.

Parameters:
  `validate` - should the parser validate documents?
  `whitespace` - should the parser eliminate whitespace in element content?
  `namespace` - should the parser be namespace aware?
  `downloadDTDs` - if true, parser should attempt to resolve external entities
Returns:
  document builder
Throws:
  `ParserConfigurationException` - if `DocumentBuilder` can not be created for the wanted configuration

### makeDocument

public static Document makeDocument(InputStream stream, boolean validate, boolean whitespace, boolean namespace, boolean tolerant, boolean quiet, boolean showWarnings, boolean report_errors, boolean isXml, boolean downloadDTDs) throws ParserConfigurationException, SAXException, IOException, TidyException
Utility function to get new Document

Parameters:
  `stream` - - Document Input stream
  `validate` - - Validate Document (not Tidy)
  `whitespace` - - Element Whitespace (not Tidy)
  `namespace` - - Is Namespace aware. (not Tidy)
  `tolerant` - - Is tolerant - i.e. use the Tidy parser
  `quiet` - - set Tidy quiet
  `showWarnings` - - set Tidy warnings
  `report_errors` - - throw TidyException if Tidy detects an error
  `isXml` - - is document already XML (Tidy only)
  `downloadDTDs` - - if true, try to download external DTDs
Returns:
  document
Throws:
  `ParserConfigurationException` - when no `DocumentBuilder` can be constructed for the wanted configuration
  `SAXException` - if parsing fails
  `IOException` - if an I/O error occurs while parsing
  `TidyException` - if a ParseError is detected and `report_errors` is `true`

### makeDocument

public static Document makeDocument(InputStream stream, boolean validate, boolean whitespace, boolean namespace, boolean tolerant, boolean quiet, boolean showWarnings, boolean report_errors, boolean isXml, boolean downloadDTDs, OutputStream tidyOut) throws ParserConfigurationException, SAXException, IOException, TidyException
Utility function to get new Document

Parameters:
  `stream` - - Document Input stream
  `validate` - - Validate Document (not Tidy)
  `whitespace` - - Element Whitespace (not Tidy)
  `namespace` - - Is Namespace aware. (not Tidy)
  `tolerant` - - Is tolerant - i.e. use the Tidy parser
  `quiet` - - set Tidy quiet
  `showWarnings` - - set Tidy warnings
  `report_errors` - - throw TidyException if Tidy detects an error
  `isXml` - - is document already XML (Tidy only)
  `downloadDTDs` - - if true, try to download external DTDs
  `tidyOut` - OutputStream for Tidy pretty-printing
Returns:
  document
Throws:
  `ParserConfigurationException` - if `DocumentBuilder` can not be created for the wanted configuration
  `SAXException` - if parsing fails
  `IOException` - if I/O error occurs while parsing
  `TidyException` - if a ParseError is detected and `report_errors` is `true`

### makeTidyParser

public static Tidy makeTidyParser(boolean quiet, boolean showWarnings, boolean isXml, StringWriter stringWriter)
Create a Tidy parser with the specified settings.

Parameters:
  `quiet` - - set the Tidy quiet flag?
  `showWarnings` - - show Tidy warnings?
  `isXml` - - treat the content as XML?
  `stringWriter` - - if non-null, use this for Tidy errorOutput
Returns:
  the Tidy parser

### selectNodeList

public static NodeList selectNodeList(Document document, String xPathExpression) throws TransformerException
Extract NodeList using expression

Parameters:
  `document` - `Document`
  `xPathExpression` - XPath expression
Returns:
  `NodeList`
Throws:
  `TransformerException` - when the internally used xpath engine fails

### putValuesForXPathInList

public static void putValuesForXPathInList(Document document, String xPathQuery, List<String> matchStrings, boolean fragment) throws TransformerException
Put in matchStrings results of evaluation

Parameters:
  `document` - XML document
  `xPathQuery` - XPath Query
  `matchStrings` - List of strings that will be filled
  `fragment` - return fragment
Throws:
  `TransformerException` - when the internally used xpath engine fails

### validateXPath

public static void validateXPath(Document document, String xpathString) throws TransformerException
Validate xpathString is a valid XPath expression

Parameters:
  `document` - XML Document
  `xpathString` - XPATH String
Throws:
  `TransformerException` - if expression fails to evaluate

### computeAssertionResult

public static void computeAssertionResult(AssertionResult result, Document doc, String xPathExpression, boolean isNegated)
Fills result

Parameters:
  `result` - `AssertionResult`
  `doc` - XML Document
  `xPathExpression` - XPath expression
  `isNegated` - flag whether a non-match should be considered a success

### formatXml

public static final String formatXml(String xml)
Formats XML

Parameters:
  `xml` - string to format
Returns:
  String formatted XML