Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 39 Next »

Processing existing XML

Groovy provides special XML processing support through the following classes:

Technology

When/Why to use

Requirements

XmlParser

supports GPath expressions for XML documents and allows updating

-

XmlSlurper

lower overheads than XmlParser due to lazy evaluation but only supports read operations

-

DOMCategory

low-level tree-based processing where you want some syntactic sugar

place use(DOMCategory) around your code

If you have special needs, you can use one of the many available Java APIs for XML processing. You should consult the documentation of individual APIs for the details, but some examples to get you started are included here:

Technology

When/Why to use

Requirements

DOM

low-level tree-based processing

-

SAX

event-based push-style parsing can be useful for streaming large files

-

StAX

event-based pull-style parsing can be useful for streaming large files

requires stax.jar

DOM4J

nicer syntax over DOM processing plus can be useful for large files if you use prune capability

requires dom4j.jar

XOM

nicer syntax over DOM processing plus a strong emphasis on compliancy

requires xom.jar

JDOM

nicer syntax over DOM processing

requires jdom.jar

XPath

use XPath expressions

requires xml-apis.jar

Jaxen

use XPath expressions with slightly more efficiency than built-in XPath

requires jaxen.jar

Creating new XML

The most used Groovy technique is to use one of:

Technology

When/Why to use

Requirements

MarkupBuilder

supports Groovy's builder pattern with XML/HTML

-

StreamingMarkupWriter

for larger files

-

You can also use XmlParser, DOM, DOM with category support, DOM4J, JDOM.

More Information

For some more discussion of the pro's and con's of your XML Processing options and some additional details, see the following books:

The following articles may also be of interest:

You may also be interested in how XML is applied in other parts of Groovy:

  • No labels