class StaxBuilder
extends BuilderSupport
A Groovy builder that works with Stax processors.
A typical usage is as follows:
import javax.xml.stream.XMLOutputFactory
def factory = XMLOutputFactory.newInstance()
def writer = new StringWriter()
def builder = new groovy.xml.StaxBuilder(factory.createXMLStreamWriter(writer))
builder.root1(a:5, b:7) {
elem1('hello1')
elem2('hello2')
elem3(x:7)
}
def pretty = writer.toString()
.replaceAll(/<\?xml[^>]*>/, '') // remove XML declaration
assert pretty in ['<root1 a="5" b="7"><elem1>hello1</elem1><elem2>hello2</elem2><elem3 x="7"></elem3></root1>',
'<root1 a="5" b="7"><elem1>hello1</elem1><elem2>hello2</elem2><elem3 x="7"/></root1>']
Or an external library such as Jettison can be used as follows:
@Grab('org.codehaus.jettison:jettison:1.2')
import org.codehaus.jettison.mapped.*
import javax.xml.stream.XMLStreamException
def conv = new MappedNamespaceConvention()
def writer = new StringWriter()
def mappedWriter = new MappedXMLStreamWriter(conv, writer)
def builder = new groovy.xml.StaxBuilder(mappedWriter)
builder.root1(a:5, b:7) {
elem1('hello1')
elem2('hello2')
elem3(x:7)
}
assert writer.toString() == '''{"root1":{"@a":"5","@b":"7","elem1":"hello1","elem2":"hello2","elem3":{"@x":"7"}}}'''
| Constructor and description |
|---|
StaxBuilder(Object xmlStreamWriter) |
| Type Params | Return Type | Name and description |
|---|---|---|
|
protected Object |
createNode(Object name) |
|
protected Object |
createNode(Object name, Object value) |
|
protected Object |
createNode(Object name, Map attributes) |
|
protected Object |
createNode(Object name, Map attributes, Object value) |
|
protected void |
nodeCompleted(Object parent, Object node) |
|
protected void |
setParent(Object parent, Object child) |
| Methods inherited from class | Name |
|---|---|
class BuilderSupport |
createNode, createNode, createNode, createNode, doInvokeMethod, getCurrent, getName, invokeMethod, invokeMethod, nodeCompleted, postNodeCompletion, setClosureDelegate, setCurrent, setParent |
class GroovyObjectSupport |
getMetaClass, setMetaClass |
Copyright © 2003-2026 The Apache Software Foundation. All rights reserved.