Package groovy.xml

# Class XmlNodePrinter

java.lang.Object
groovy.xml.XmlNodePrinter

public class XmlNodePrinter extends Object
Prints a `groovy.util.Node` (as used with `XmlParser`) including all children in XML format. Typical usage:

     def xml = '<html><head><title>Title</title></head><body><h1>Header</h1></body></html>'
     def root = new XmlParser().parseText(xml)
     new XmlNodePrinter(preserveWhitespace:true).print(root.body[0])

which when run produces this on stdout (or use your own `PrintWriter` to direct elsewhere):

     <body>
       <h1>Header</h1>
     </body>

See Also:
  - `NodePrinter`
  - `XmlUtil.serialize(Node)`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected static class`
  `XmlNodePrinter.NamespaceContext`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final IndentPrinter`
  `out`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XmlNodePrinter()`
  `XmlNodePrinter(IndentPrinter out)`
  `XmlNodePrinter(IndentPrinter out, String quote)`
  `XmlNodePrinter(PrintWriter out)`
  `XmlNodePrinter(PrintWriter out, String indent)`
  `XmlNodePrinter(PrintWriter out, String indent, String quote)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getQuote()`
  Get Quote to use when printing attributes.
  `boolean`
  `isExpandEmptyElements()`
  Whether empty elements are expanded from <tagName/> to <tagName></tagName>.
  `boolean`
  `isNamespaceAware()`
  Check if namespace handling is enabled.
  `boolean`
  `isPreserveWhitespace()`
  Check if whitespace preservation is enabled.
  `void`
  `print(Node node)`
  `protected void`
  `print(Node node, XmlNodePrinter.NamespaceContext ctx)`
  `protected void`
  `printLineBegin()`
  `protected void`
  `printLineEnd()`
  `protected void`
  `printLineEnd(String comment)`
  `protected void`
  `printList(List list, XmlNodePrinter.NamespaceContext ctx)`
  `protected void`
  `printName(Node node, XmlNodePrinter.NamespaceContext ctx, boolean begin, boolean preserve)`
  `protected void`
  `printNameAttributes(Map attributes, XmlNodePrinter.NamespaceContext ctx)`
  `protected void`
  `printNamespace(Object object, XmlNodePrinter.NamespaceContext ctx)`
  `protected void`
  `printSimpleItem(Object value)`
  `protected boolean`
  `printSpecialNode(Node node)`
  `void`
  `setExpandEmptyElements(boolean expandEmptyElements)`
  Whether empty elements are expanded from <tagName/> to <tagName></tagName>.
  `void`
  `setNamespaceAware(boolean namespaceAware)`
  Enable and/or disable namespace handling.
  `void`
  `setPreserveWhitespace(boolean preserveWhitespace)`
  Enable and/or disable preservation of whitespace.
  `void`
  `setQuote(String quote)`
  Set Quote to use when printing attributes.

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

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

- ## Field Details

  - ### out

    protected final IndentPrinter out

- ## Constructor Details

  - ### XmlNodePrinter

    public XmlNodePrinter(PrintWriter out)

  - ### XmlNodePrinter

    public XmlNodePrinter(PrintWriter out, String indent)

  - ### XmlNodePrinter

    public XmlNodePrinter(PrintWriter out, String indent, String quote)

  - ### XmlNodePrinter

    public XmlNodePrinter(IndentPrinter out)

  - ### XmlNodePrinter

    public XmlNodePrinter(IndentPrinter out, String quote)

  - ### XmlNodePrinter

    public XmlNodePrinter()

- ## Method Details

  - ### print

    public void print(Node node)

  - ### isNamespaceAware

    public boolean isNamespaceAware()
    Check if namespace handling is enabled. Defaults to `true`.
    Returns:
      true if namespace handling is enabled

  - ### setNamespaceAware

    public void setNamespaceAware(boolean namespaceAware)
    Enable and/or disable namespace handling.
    Parameters:
      `namespaceAware` - the new desired value

  - ### isPreserveWhitespace

    public boolean isPreserveWhitespace()
    Check if whitespace preservation is enabled. Defaults to `false`.
    Returns:
      true if whitespaces are honoured when printing simple text nodes

  - ### setPreserveWhitespace

    public void setPreserveWhitespace(boolean preserveWhitespace)
    Enable and/or disable preservation of whitespace.
    Parameters:
      `preserveWhitespace` - the new desired value

  - ### getQuote

    public String getQuote()
    Get Quote to use when printing attributes.
    Returns:
      the quote character

  - ### setQuote

    public void setQuote(String quote)
    Set Quote to use when printing attributes.
    Parameters:
      `quote` - the quote character

  - ### isExpandEmptyElements

    public boolean isExpandEmptyElements()
    Whether empty elements are expanded from <tagName/> to <tagName></tagName>.
    Returns:
      `true`, if empty elements will be represented by an opening tag followed immediately by a closing tag.

  - ### setExpandEmptyElements

    public void setExpandEmptyElements(boolean expandEmptyElements)
    Whether empty elements are expanded from <tagName/> to <tagName></tagName>.
    Parameters:
      `expandEmptyElements` - if `true`, empty elements will be represented by an opening tag followed immediately by a closing tag. Defaults to `false`.

  - ### print

    protected void print(Node node, XmlNodePrinter.NamespaceContext ctx)

  - ### printLineBegin

    protected void printLineBegin()

  - ### printLineEnd

    protected void printLineEnd()

  - ### printLineEnd

    protected void printLineEnd(String comment)

  - ### printList

    protected void printList(List list, XmlNodePrinter.NamespaceContext ctx)

  - ### printSimpleItem

    protected void printSimpleItem(Object value)

  - ### printName

    protected void printName(Node node, XmlNodePrinter.NamespaceContext ctx, boolean begin, boolean preserve)

  - ### printSpecialNode

    protected boolean printSpecialNode(Node node)

  - ### printNamespace

    protected void printNamespace(Object object, XmlNodePrinter.NamespaceContext ctx)

  - ### printNameAttributes

    protected void printNameAttributes(Map attributes, XmlNodePrinter.NamespaceContext ctx)