Class XmlUtils

java.lang.Object
org.htmlunit.util.XmlUtils

public final class XmlUtils extends Object
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Provides facility method to work with XML responses.
  • Field Details

    • LOG

      private static final org.apache.commons.logging.Log LOG
    • DISCARD_MESSAGES_HANDLER

      private static final ErrorHandler DISCARD_MESSAGES_HANDLER
  • Constructor Details

    • XmlUtils

      private XmlUtils()
      Utility class, hide constructor.
  • Method Details

    • buildDocument

      public static Document buildDocument(WebResponse webResponse) throws IOException, SAXException, ParserConfigurationException
      Builds a document from the content of the web response. A warning is logged if an exception is thrown while parsing the XML content (for instance when the content is not a valid XML and can't be parsed).
      Parameters:
      webResponse - the response from the server
      Returns:
      the parse result
      Throws:
      IOException - if the page could not be created
      SAXException - if the parsing fails
      ParserConfigurationException - if a DocumentBuilder cannot be created
    • appendChild

      public static void appendChild(SgmlPage page, DomNode parent, Node child, boolean handleXHTMLAsHTML)
      Recursively appends a Node child to DomNode parent.
      Parameters:
      page - the owner page of DomElements to be created
      parent - the parent DomNode
      child - the child Node
      handleXHTMLAsHTML - if true elements from the XHTML namespace are handled as HTML elements instead of DOM elements
    • appendChild

      public static void appendChild(SgmlPage page, DomNode parent, Node child, boolean handleXHTMLAsHTML, Map<Integer,List<String>> attributesOrderMap)
      Recursively appends a Node child to DomNode parent.
      Parameters:
      page - the owner page of DomElements to be created
      parent - the parent DomNode
      child - the child Node
      handleXHTMLAsHTML - if true elements from the XHTML namespace are handled as HTML elements instead of DOM elements
      attributesOrderMap - (optional) the one returned by getAttributesOrderMap(Document)
    • createFrom

      private static DomNode createFrom(SgmlPage page, Node source, boolean handleXHTMLAsHTML, Map<Integer,List<String>> attributesOrderMap)
    • namedNodeMapToSaxAttributes

      private static Attributes namedNodeMapToSaxAttributes(NamedNodeMap attributesMap, Map<Integer,List<String>> attributesOrderMap, Node element)
    • copy

      private static void copy(SgmlPage page, Node source, DomNode dest, boolean handleXHTMLAsHTML, Map<Integer,List<String>> attributesOrderMap)
      Copy all children from 'source' to 'dest', within the context of the specified page.
      Parameters:
      page - the page which the nodes belong to
      source - the node to copy from
      dest - the node to copy to
      handleXHTMLAsHTML - if true elements from the XHTML namespace are handled as HTML elements instead of DOM elements
    • lookupNamespaceURI

      public static String lookupNamespaceURI(DomElement element, String prefix)
      Search for the namespace URI of the given prefix, starting from the specified element. The default namespace can be searched for by specifying "" as the prefix.
      Parameters:
      element - the element to start searching from
      prefix - the namespace prefix
      Returns:
      the namespace URI bound to the prefix; or null if there is no such namespace
    • lookupPrefix

      public static String lookupPrefix(DomElement element, String namespace)
      Search for the prefix associated with specified namespace URI.
      Parameters:
      element - the element to start searching from
      namespace - the namespace prefix
      Returns:
      the prefix bound to the namespace URI; or null if there is no such namespace
    • getAttributesOrderMap

      public static Map<Integer,List<String>> getAttributesOrderMap(Document document)
      Returns internal Xerces details about all elements in the specified document. The id of the returned Map is the nodeIndex of an element, and the list is the array of ordered attributes names.
      Parameters:
      document - the document
      Returns:
      the map of an element index with its ordered attribute names