[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 &lt; 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

Properties
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

Constructors
Constructor and description
StreamingMarkupBuilder ()

Methods Summary

Methods
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

Inherited Methods
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