public class XmlNodePrinter extends Object
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>
NodePrinter
,
XmlUtil.serialize(Node)
Modifier and Type | Class and Description |
---|---|
protected class |
XmlNodePrinter.NamespaceContext |
Modifier and Type | Field and Description |
---|---|
protected IndentPrinter |
out |
Constructor and 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) |
Modifier and Type | Method and 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.
|
protected final IndentPrinter out
public XmlNodePrinter(PrintWriter out)
public XmlNodePrinter(PrintWriter out, String indent)
public XmlNodePrinter(PrintWriter out, String indent, String quote)
public XmlNodePrinter(IndentPrinter out)
public XmlNodePrinter(IndentPrinter out, String quote)
public XmlNodePrinter()
public void print(Node node)
public boolean isNamespaceAware()
true
.public void setNamespaceAware(boolean namespaceAware)
namespaceAware
- the new desired valuepublic boolean isPreserveWhitespace()
false
.public void setPreserveWhitespace(boolean preserveWhitespace)
preserveWhitespace
- the new desired valuepublic String getQuote()
public void setQuote(String quote)
quote
- the quote characterpublic boolean isExpandEmptyElements()
true
, if empty elements will be represented by an opening tag
followed immediately by a closing tag.public void setExpandEmptyElements(boolean expandEmptyElements)
expandEmptyElements
- if true
, empty
elements will be represented by an opening tag
followed immediately by a closing tag.
Defaults to false
.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 printSimpleItem(Object value)
protected void printName(Node node, XmlNodePrinter.NamespaceContext ctx, boolean begin, boolean preserve)
protected boolean printSpecialNode(Node node)
protected void printNamespace(Object object, XmlNodePrinter.NamespaceContext ctx)
protected void printNameAttributes(Map attributes, XmlNodePrinter.NamespaceContext ctx)