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 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