[Groovy] Class StreamingMarkupBuilder
- groovy.xml.StreamingMarkupBuilder
A builder class for creating XML markup. This implementation uses a StreamingMarkupWriter to handle output.
Example:
System.out << new StreamingMarkupBuilder().bind { root { a( a1:'one' ) { b { mkp.yield( '3 < 5' ) } c( a2:'two', 'blah' ) } } }Will output the following String, without newlines or indentation:
<root> <a a1='one'> <b>3 < 5</b> <c a2='two'>blah</c> </a> </root>Notes:
- that
mkp
is a special namespace used to escape away from the normal building mode of the builder and get access to helper markup methods 'yield', 'pi', 'comment', 'out', 'namespaces', 'xmlDeclaration' and 'yieldUnescaped'. - Note that tab, newline and carriage return characters are escaped within attributes, i.e. will become , and respectively
Properties Summary
Type | Name and description |
---|---|
def |
builder |
def |
commentClosure Invoked by calling mkp.comment
|
def |
declarationClosure Invoked by calling mkp.xmlDeclaration
|
def |
encoding |
boolean |
expandEmptyElements |
def |
noopClosure Invoked by calling mkp.yield . |
def |
pendingStack |
def |
piClosure Invoked by calling mkp.pi
|
def |
tagClosure |
def |
unescapedClosure Invoked by calling mkp.yieldUnescaped . |
boolean |
useDoubleQuotes |
Constructor Summary
Constructor and description |
---|
StreamingMarkupBuilder
() |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
def |
bind(def closure) Returns a Writable object, which may be used to render the markup directly to a String, or send the output to a stream. | |
def |
bindNode(def node) Convenience method for binding a single node. | |
def |
getQt() |
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class Object | wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Property Detail
def builder
def commentClosure
Invoked by calling mkp.comment
def declarationClosure
Invoked by calling mkp.xmlDeclaration
def encoding
boolean expandEmptyElements
def noopClosure
Invoked by calling mkp.yield
. Used to render text to the output stream. Any XML reserved characters will be escaped to ensure well-formedness.
def pendingStack
def piClosure
Invoked by calling mkp.pi
def tagClosure
def unescapedClosure
Invoked by calling mkp.yieldUnescaped
. Used to render literal text or markup to the output stream. No escaping is done on the output.
boolean useDoubleQuotes
Constructor Detail
StreamingMarkupBuilder()
Method Detail
def bind(def closure)
Returns a Writable object, which may be used to render the markup directly to a String, or send the output to a stream.
Examples:
// get the markup as a string: new StreamingMarkupBuilder().bind { div { out << "hello world" } }.toString() // send the output directly to a file: new StreamingMarkupBuilder().bind { div { out << "hello world" } } \ .writeTo( new File('myFile.xml').newWriter() )
- Returns:
- a Writable to render the markup
def bindNode(def node)
Convenience method for binding a single node. The call bindNode(node)
is equivalent to bind{ out << node }
. Returns a Writable object, which may be used to render the markup directly to a String, or send the output to a stream.
- See Also:
- bind(Closure)
- Returns:
- a Writable to render the markup
def getQt()
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/groovy/xml/StreamingMarkupBuilder.html