Package groovy.util

# Class XmlNodePrinter

java.lang.Object
groovy.util.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>

Author:
  Christian Stein
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)