Package groovy.xml

# Class XmlUtil

java.lang.Object
groovy.xml.XmlUtil

public class XmlUtil extends Object
Used for pretty printing XML content and other XML related utilities.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XmlUtil()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `escapeControlCharacters(String orig)`
  Escape control characters (below 0x20) with their XML entities, e.g.
  `static String`
  `escapeXml(String orig)`
  Escape the following characters `" ' & < >` with their XML entities, e.g.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, boolean allowDoctypeDecl, Source... schemas)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, File schema)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, URL schema)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, Source... schemas)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, File schema)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, URL schema)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against.
  `static SAXParser`
  `newSAXParser(String schemaLanguage, Source... schemas)`
  Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
  `static String`
  `serialize(Writable writable)`
  Return a pretty String version of the XML content produced by the Writable.
  `static void`
  `serialize(Writable writable, OutputStream os)`
  Write a pretty version of the XML content produced by the Writable to the OutputStream.
  `static void`
  `serialize(Writable writable, Writer w)`
  Write a pretty version of the XML content produced by the Writable to the Writer.
  `static String`
  `serialize(Node node)`
  Return a pretty String version of the Node.
  `static void`
  `serialize(Node node, OutputStream os)`
  Write a pretty version of the Node to the OutputStream.
  `static void`
  `serialize(Node node, Writer w)`
  Write a pretty version of the Node to the Writer.
  `static String`
  `serialize(GPathResult node)`
  Return a pretty version of the GPathResult.
  `static void`
  `serialize(GPathResult node, OutputStream os)`
  Write a pretty version of the GPathResult to the OutputStream.
  `static void`
  `serialize(GPathResult node, Writer w)`
  Write a pretty version of the GPathResult to the Writer.
  `static String`
  `serialize(String xmlString)`
  Return a pretty version of the XML content contained in the given String.
  `static String`
  `serialize(String xmlString, boolean allowDocTypeDeclaration)`
  Return a pretty version of the XML content contained in the given String.
  `static void`
  `serialize(String xmlString, OutputStream os)`
  Write a pretty version of the given XML string to the OutputStream.
  `static void`
  `serialize(String xmlString, OutputStream os, boolean allowDocTypeDeclaration)`
  Write a pretty version of the given XML string to the OutputStream.
  `static void`
  `serialize(String xmlString, Writer w)`
  Write a pretty version of the given XML string to the Writer.
  `static void`
  `serialize(String xmlString, Writer w, boolean allowDocTypeDeclaration)`
  Write a pretty version of the given XML string to the Writer.
  `static String`
  `serialize(Element element)`
  Return a pretty String version of the Element.
  `static String`
  `serialize(Element element, boolean allowDocTypeDeclaration)`
  Return a pretty String version of the Element.
  `static void`
  `serialize(Element element, OutputStream os)`
  Write a pretty version of the Element to the OutputStream.
  `static void`
  `serialize(Element element, OutputStream os, boolean allowDocTypeDeclaration)`
  Write a pretty version of the Element to the OutputStream.
  `static void`
  `serialize(Element element, Writer w)`
  Write a pretty version of the Element to the Writer.
  `static void`
  `serialize(Element element, Writer w, boolean allowDocTypeDeclaration)`
  Write a pretty version of the Element to the Writer.
  `static void`
  `setFeatureQuietly(DocumentBuilderFactory factory, String feature, boolean value)`
  `static void`
  `setFeatureQuietly(SAXParserFactory factory, String feature, boolean value)`
  `static void`
  `setFeatureQuietly(TransformerFactory factory, String feature, boolean value)`

  ### Methods inherited from class java.lang.Object

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

- ## Constructor Details

  - ### XmlUtil

    public XmlUtil()

- ## Method Details

  - ### serialize

    public static String serialize(Element element)
    Return a pretty String version of the Element.
    Parameters:
      `element` - the Element to serialize
    Returns:
      the pretty String representation of the Element

  - ### serialize

    public static String serialize(Element element, boolean allowDocTypeDeclaration)
    Return a pretty String version of the Element.
    Parameters:
      `element` - the Element to serialize
      `allowDocTypeDeclaration` - whether to allow doctype processing
    Returns:
      the pretty String representation of the Element

  - ### serialize

    public static void serialize(Element element, OutputStream os)
    Write a pretty version of the Element to the OutputStream.
    Parameters:
      `element` - the Element to serialize
      `os` - the OutputStream to write to

  - ### serialize

    public static void serialize(Element element, OutputStream os, boolean allowDocTypeDeclaration)
    Write a pretty version of the Element to the OutputStream.
    Parameters:
      `element` - the Element to serialize
      `os` - the OutputStream to write to
      `allowDocTypeDeclaration` - whether to allow doctype processing

  - ### serialize

    public static void serialize(Element element, Writer w)
    Write a pretty version of the Element to the Writer.
    Parameters:
      `element` - the Element to serialize
      `w` - the Writer to write to

  - ### serialize

    public static void serialize(Element element, Writer w, boolean allowDocTypeDeclaration)
    Write a pretty version of the Element to the Writer.
    Parameters:
      `element` - the Element to serialize
      `w` - the Writer to write to
      `allowDocTypeDeclaration` - whether to allow doctype processing

  - ### serialize

    public static String serialize(Node node)
    Return a pretty String version of the Node.
    Parameters:
      `node` - the Node to serialize
    Returns:
      the pretty String representation of the Node

  - ### serialize

    public static void serialize(Node node, OutputStream os)
    Write a pretty version of the Node to the OutputStream.
    Parameters:
      `node` - the Node to serialize
      `os` - the OutputStream to write to

  - ### serialize

    public static void serialize(Node node, Writer w)
    Write a pretty version of the Node to the Writer.
    Parameters:
      `node` - the Node to serialize
      `w` - the Writer to write to

  - ### serialize

    public static String serialize(GPathResult node)
    Return a pretty version of the GPathResult.
    Parameters:
      `node` - a GPathResult to serialize to a String
    Returns:
      the pretty String representation of the GPathResult

  - ### serialize

    public static void serialize(GPathResult node, OutputStream os)
    Write a pretty version of the GPathResult to the OutputStream.
    Parameters:
      `node` - a GPathResult to serialize
      `os` - the OutputStream to write to

  - ### serialize

    public static void serialize(GPathResult node, Writer w)
    Write a pretty version of the GPathResult to the Writer.
    Parameters:
      `node` - a GPathResult to serialize
      `w` - the Writer to write to

  - ### serialize

    public static String serialize(Writable writable)
    Return a pretty String version of the XML content produced by the Writable.
    Parameters:
      `writable` - the Writable to serialize
    Returns:
      the pretty String representation of the content from the Writable

  - ### serialize

    public static void serialize(Writable writable, OutputStream os)
    Write a pretty version of the XML content produced by the Writable to the OutputStream.
    Parameters:
      `writable` - the Writable to serialize
      `os` - the OutputStream to write to

  - ### serialize

    public static void serialize(Writable writable, Writer w)
    Write a pretty version of the XML content produced by the Writable to the Writer.
    Parameters:
      `writable` - the Writable to serialize
      `w` - the Writer to write to

  - ### serialize

    public static String serialize(String xmlString)
    Return a pretty version of the XML content contained in the given String.
    Parameters:
      `xmlString` - the String to serialize
    Returns:
      the pretty String representation of the original content

  - ### serialize

    public static String serialize(String xmlString, boolean allowDocTypeDeclaration)
    Return a pretty version of the XML content contained in the given String.
    Parameters:
      `xmlString` - the String to serialize
      `allowDocTypeDeclaration` - whether to allow doctype processing
    Returns:
      the pretty String representation of the original content

  - ### serialize

    public static void serialize(String xmlString, OutputStream os)
    Write a pretty version of the given XML string to the OutputStream.
    Parameters:
      `xmlString` - the String to serialize
      `os` - the OutputStream to write to

  - ### serialize

    public static void serialize(String xmlString, OutputStream os, boolean allowDocTypeDeclaration)
    Write a pretty version of the given XML string to the OutputStream.
    Parameters:
      `xmlString` - the String to serialize
      `allowDocTypeDeclaration` - whether to allow doctype processing
      `os` - the OutputStream to write to

  - ### serialize

    public static void serialize(String xmlString, Writer w)
    Write a pretty version of the given XML string to the Writer.
    Parameters:
      `xmlString` - the String to serialize
      `w` - the Writer to write to

  - ### serialize

    public static void serialize(String xmlString, Writer w, boolean allowDocTypeDeclaration)
    Write a pretty version of the given XML string to the Writer.
    Parameters:
      `xmlString` - the String to serialize
      `allowDocTypeDeclaration` - whether to allow doctype processing
      `w` - the Writer to write to

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, Source... schemas) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with. The created SAXParser will be namespace-aware and not validate against DTDs.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `schemas` - the schemas to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      1.8.7
    See Also:
      - `newSAXParser(String, boolean, boolean, Source...)`

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, Source... schemas) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `namespaceAware` - will the parser be namespace aware
      `validating` - will the parser also validate against DTDs
      `schemas` - the schemas to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      1.8.7

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, boolean allowDoctypeDecl, Source... schemas) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `namespaceAware` - will the parser be namespace aware
      `validating` - will the parser also validate against DTDs
      `allowDoctypeDecl` - whether to allow doctype declarations (potentially insecure)
      `schemas` - the schemas to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      3.0.11

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, File schema) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against. The created SAXParser will be namespace-aware and not validate against DTDs.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `schema` - a file containing the schema to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      1.8.7
    See Also:
      - `newSAXParser(String, boolean, boolean, File)`

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, File schema) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `namespaceAware` - will the parser be namespace aware
      `validating` - will the parser also validate against DTDs
      `schema` - a file containing the schema to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      1.8.7

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, URL schema) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against. The created SAXParser will be namespace-aware and not validate against DTDs.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `schema` - a URL pointing to the schema to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      1.8.7
    See Also:
      - `newSAXParser(String, boolean, boolean, URL)`

  - ### newSAXParser

    public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, URL schema) throws SAXException, ParserConfigurationException
    Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against.
    Parameters:
      `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
      `namespaceAware` - will the parser be namespace aware
      `validating` - will the parser also validate against DTDs
      `schema` - a URL pointing to the schema to validate against
    Returns:
      the created SAXParser
    Throws:
      `SAXException`
      `ParserConfigurationException`
    Since:
      1.8.7

  - ### escapeXml

    public static String escapeXml(String orig)
    Escape the following characters `" ' & < >` with their XML entities, e.g. `"bread" & "butter"` becomes `&quot;bread&quot; &amp; &quot;butter&quot`. Notes:
    - Supports only the five basic XML entities (gt, lt, quot, amp, apos)
    - Does not escape control characters
    - Does not support DTDs or external entities
    - Does not treat surrogate pairs specially
    - Does not perform Unicode validation on its input
    Parameters:
      `orig` - the original String
    Returns:
      A new string in which all characters that require escaping have been replaced with the corresponding XML entities.
    See Also:
      - `escapeControlCharacters(String)`

  - ### escapeControlCharacters

    public static String escapeControlCharacters(String orig)
    Escape control characters (below 0x20) with their XML entities, e.g. carriage return (`Ctrl-M or \r`) becomes `&#13;` Notes:
    - Does not escape non-ascii characters above 0x7e
    - Does not treat surrogate pairs specially
    - Does not perform Unicode validation on its input
    Parameters:
      `orig` - the original String
    Returns:
      A new string in which all characters that require escaping have been replaced with the corresponding XML entities.
    See Also:
      - `escapeXml(String)`

  - ### setFeatureQuietly

    public static void setFeatureQuietly(TransformerFactory factory, String feature, boolean value)

  - ### setFeatureQuietly

    public static void setFeatureQuietly(DocumentBuilderFactory factory, String feature, boolean value)

  - ### setFeatureQuietly

    public static void setFeatureQuietly(SAXParserFactory factory, String feature, boolean value)