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 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
  --- | --- | ---
  `protected String` | `getName​(Object object)` |
  `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)

  - ### getName

    protected String getName​(Object object)