Class DOMUtilities

All Implemented Interfaces:
XMLConstants

public class DOMUtilities extends XMLUtilities implements XMLConstants
A collection of utility functions for the DOM.
Version:
$Id: DOMUtilities.java 1851346 2019-01-15 13:41:00Z ssteiner $
  • Field Details

    • LOCK_STRINGS

      protected static final String[] LOCK_STRINGS
      String constants representing DOM modifier strings for various all key lock combinations.
    • MODIFIER_STRINGS

      protected static final String[] MODIFIER_STRINGS
      String constants representing DOM modifier strings for various all shift modifier combinations.
  • Constructor Details

    • DOMUtilities

      protected DOMUtilities()
      Does not need to be instantiated.
  • Method Details

    • writeDocument

      public static void writeDocument(Document doc, Writer w) throws IOException
      Serializes the specified Document, writing it to the given Writer.
      Throws:
      IOException
    • writeNode

      protected static void writeNode(Node n, Writer w, DOMUtilities.NSMap m, boolean isXML11) throws IOException
      Throws:
      IOException
    • writeNode

      public static void writeNode(Node n, Writer w) throws IOException
      Writes a node using the given writer.
      Throws:
      IOException
    • getUsableQuote

      private static char getUsableQuote(String s)
      Returns the quote character to use when quoting the specified string. If the string contains both single and double quotes, then 0 will be returned.
    • getXML

      public static String getXML(Node n)
      Serializes the given DOM node using writeNode(Node,Writer) and returns the XML as a String.
      Parameters:
      n - The Node to serialize.
      Returns:
      A String containing the XML serialization of the Node, or an empty String if there was a problem during serialization.
    • assertValidCharacters

      protected static String assertValidCharacters(String s, boolean isXML11) throws IOException
      Throws:
      IOException
    • contentToString

      public static String contentToString(String s, boolean isXML11) throws IOException
      Returns the given content value transformed to replace invalid characters with entities.
      Throws:
      IOException
    • getChildIndex

      public static int getChildIndex(Node child, Node parent)
      Finds and returns the index of child node in the given parent's children array
      Parameters:
      child - The child node
      parent - The parent node
      Returns:
      the index
    • getChildIndex

      public static int getChildIndex(Node child)
      Finds and returns the index of child node in its parent's children array
      Parameters:
      child - The child node
      Returns:
      the index in children array
    • isAnyNodeAncestorOf

      public static boolean isAnyNodeAncestorOf(ArrayList ancestorNodes, Node node)
      Checks if any of from the given list of nodes is an ancestor to another node
      Parameters:
      ancestorNodes - The potential ancestor nodes
      node - The potential descendant node
      Returns:
      True if at least one node is ancestor of the given node
    • isAncestorOf

      public static boolean isAncestorOf(Node node, Node descendant)
      Checks whether a node is ancestor of another node.
      Parameters:
      node - The potential ancestor node
      descendant - The potential descendant node
      Returns:
      True if node is ancestor of the descendant node
    • isParentOf

      public static boolean isParentOf(Node node, Node parentNode)
      Tests whether the given node is a child of the given parent node.
      Parameters:
      node - The potential child node
      parentNode - Parent node
      Returns:
      True if a node is a child of the given parent node
    • canAppend

      public static boolean canAppend(Node node, Node parentNode)
      Checks if the node can be appended on the given parent node
      Parameters:
      node - The given node
      parentNode - The given parent node
      Returns:
      True if the given node can be appended on the parent node
    • canAppendAny

      public static boolean canAppendAny(ArrayList children, Node parentNode)
      Checks whether any of the nodes from the list can be appended to a given parentNode.
      Parameters:
      children - The given node list
      parentNode - The potential parent node
      Returns:
      true if at least one node from a list can be appended
    • canHaveChildren

      public static boolean canHaveChildren(Node parentNode)
      Returns whether the given Node can have children.
      Parameters:
      parentNode - The Node to test
      Returns:
      true if the node can have children, false otherwise
    • parseXML

      public static Node parseXML(String text, Document doc, String uri, Map prefixes, String wrapperElementName, SAXDocumentFactory documentFactory)
      Parses the given XML string into a DocumentFragment of the given document or a new document if 'doc' is null.
      Parameters:
      text - The given XML string
      doc - The given document
      uri - The document URI
      prefixes - The prefixes map with (prefix, namespaceURI) pairs
      wrapperElementName - null: Ignore the wrapper element and prefixes map and try to parse the text as a whole document otherwise: Wrap the given text with the wrapper element with prefixes specified from the prefixes map
      documentFactory - What document factory to use when parsing the text
      Returns:
      The document fragment or null on error.
    • deepCloneDocument

      public static Document deepCloneDocument(Document doc, DOMImplementation impl)
      Deep clones a document using the given DOM implementation.
    • isValidName

      public static boolean isValidName(String s)
      Tests whether the given string is a valid name.
    • isValidName11

      public static boolean isValidName11(String s)
      Tests whether the given string is a valid XML 1.1 name.
    • isValidPrefix

      public static boolean isValidPrefix(String s)
      Tests whether the given string is a valid prefix. This method assume that isValidName(s) is true.
    • getPrefix

      public static String getPrefix(String s)
      Gets the prefix from the given qualified name. This method assume that isValidName(s) is true.
    • getLocalName

      public static String getLocalName(String s)
      Gets the local name from the given qualified name. This method assume that isValidName(s) is true.
    • parseStyleSheetPIData

      public static void parseStyleSheetPIData(String data, HashMap<String,String> table)
      Parses a 'xml-stylesheet' processing instruction data section and puts the pseudo attributes in the given table.
    • getModifiersList

      public static String getModifiersList(int lockState, int modifiersEx)
      Gets a DOM 3 modifiers string from the given lock and shift bitmasks.
    • isAttributeSpecifiedNS

      public static boolean isAttributeSpecifiedNS(Element e, String namespaceURI, String localName)
      Returns whether the given element has a particular attribute and that it exists due to being specified explicitly, rather than being defaulted from a DTD.