Package groovy.util

## Class XmlNodePrinter

- java.lang.Object
- - groovy.util.XmlNodePrinter

-     public class XmlNodePrinter
      extends java.lang.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, java.lang.String quote)` |
    `XmlNodePrinter​(java.io.PrintWriter out)` |
    `XmlNodePrinter​(java.io.PrintWriter out, java.lang.String indent)` |
    `XmlNodePrinter​(java.io.PrintWriter out, java.lang.String indent, java.lang.String quote)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.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​(java.lang.String comment)` |
    `protected void` | `printList​(java.util.List list, XmlNodePrinter.NamespaceContext ctx)` |
    `protected void` | `printName​(Node node, XmlNodePrinter.NamespaceContext ctx, boolean begin, boolean preserve)` |
    `protected void` | `printNameAttributes​(java.util.Map attributes, XmlNodePrinter.NamespaceContext ctx)` |
    `protected void` | `printNamespace​(java.lang.Object object, XmlNodePrinter.NamespaceContext ctx)` |
    `protected void` | `printSimpleItem​(java.lang.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​(java.lang.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 Detail

    - #### out

          protected final IndentPrinter out

  - ### Constructor Detail

    - #### XmlNodePrinter

          public XmlNodePrinter​(java.io.PrintWriter out)

    - #### XmlNodePrinter

          public XmlNodePrinter​(java.io.PrintWriter out,
                                java.lang.String indent)

    - #### XmlNodePrinter

          public XmlNodePrinter​(java.io.PrintWriter out,
                                java.lang.String indent,
                                java.lang.String quote)

    - #### XmlNodePrinter

          public XmlNodePrinter​(IndentPrinter out)

    - #### XmlNodePrinter

          public XmlNodePrinter​(IndentPrinter out,
                                java.lang.String quote)

    - #### XmlNodePrinter

          public XmlNodePrinter()

  - ### Method Detail

    - #### 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 java.lang.String getQuote()

      Get Quote to use when printing attributes.
      Returns:
        the quote character

    - #### setQuote

          public void setQuote​(java.lang.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​(java.lang.String comment)

    - #### printList

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

    - #### printSimpleItem

          protected void printSimpleItem​(java.lang.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​(java.lang.Object object,
                                        XmlNodePrinter.NamespaceContext ctx)

    - #### printNameAttributes

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