public class XmlParser extends Object
A helper class for parsing XML into a tree of Node instances for a simple way of processing XML. This parser does not preserve the XML InfoSet - if that's what you need try using W3C DOM, dom4j, JDOM, XOM etc. This parser ignores comments and processing instructions and converts the XML into a Node for each element in the XML with attributes and child Nodes and Strings. This simple model is sufficient for most simple use cases of processing XML.
Example usage:
def xml = '<root><one a1="uno!"/><two>Some text!</two></root>' def rootNode = new XmlParser().parseText(xml) assert rootNode.name() == 'root' assert rootNode.one[0].@a1 == 'uno!' assert rootNode.two.text() == 'Some text!' rootNode.children().each { assert it.name() in ['one','two'] }
Constructor and description |
---|
XmlParser
() Creates a non-validating and non-namespace-aware XmlParser which does not allow DOCTYPE declarations in documents. |
XmlParser
(boolean validating, boolean namespaceAware) Creates a XmlParser which does not allow DOCTYPE declarations in documents. |
XmlParser
(boolean validating, boolean namespaceAware, boolean allowDocTypeDeclaration) Creates a XmlParser . |
XmlParser
(XMLReader reader) |
XmlParser
(SAXParser parser) |
Type | Name and description |
---|---|
protected void |
addTextToNode() |
void |
characters(char[] buffer, int start, int length) |
protected Node |
createNode(Node parent, Object name, Map attributes) Creates a new node with the given parent, name, and attributes. |
void |
endDocument() |
void |
endElement(String namespaceURI, String localName, String qName) |
void |
endPrefixMapping(String prefix) |
DTDHandler |
getDTDHandler() |
Locator |
getDocumentLocator() |
protected Object |
getElementName(String namespaceURI, String localName, String qName) Return a name given the namespaceURI, localName and qName. |
EntityResolver |
getEntityResolver() |
ErrorHandler |
getErrorHandler() |
boolean |
getFeature(String uri) |
Object |
getProperty(String uri) |
protected XMLReader |
getXMLReader() |
void |
ignorableWhitespace(char[] buffer, int start, int len) |
boolean |
isKeepIgnorableWhitespace() Returns the current keep ignorable whitespace setting. |
boolean |
isNamespaceAware() Determine if namespace handling is enabled. |
boolean |
isTrimWhitespace() Returns the current trim whitespace setting. |
Node |
parse(File file) Parses the content of the given file as XML turning it into a tree of Nodes. |
Node |
parse(InputSource input) Parse the content of the specified input source into a tree of Nodes. |
Node |
parse(InputStream input) Parse the content of the specified input stream into a tree of Nodes. |
Node |
parse(Reader in) Parse the content of the specified reader into a tree of Nodes. |
Node |
parse(String uri) Parse the content of the specified URI into a tree of Nodes. |
Node |
parseText(String text) A helper method to parse the given text as XML. |
void |
processingInstruction(String target, String data) |
void |
setDTDHandler(DTDHandler dtdHandler) |
void |
setDocumentLocator(Locator locator) |
void |
setEntityResolver(EntityResolver entityResolver) |
void |
setErrorHandler(ErrorHandler errorHandler) |
void |
setFeature(String uri, boolean value) |
void |
setKeepIgnorableWhitespace(boolean keepIgnorableWhitespace) Sets the keep ignorable whitespace setting value. |
void |
setNamespaceAware(boolean namespaceAware) Enable and/or disable namespace handling. |
void |
setProperty(String uri, Object value) |
void |
setTrimWhitespace(boolean trimWhitespace) Sets the trim whitespace setting value. |
void |
skippedEntity(String name) |
void |
startDocument() |
void |
startElement(String namespaceURI, String localName, String qName, Attributes list) |
void |
startPrefixMapping(String prefix, String namespaceURI) |
Creates a non-validating and non-namespace-aware XmlParser
which does not allow DOCTYPE declarations in documents.
Creates a XmlParser
which does not allow DOCTYPE declarations in documents.
validating
- true
if the parser should validate documents as they are parsed; false otherwise.namespaceAware
- true
if the parser should provide support for XML namespaces; false
otherwise. Creates a XmlParser
.
validating
- true
if the parser should validate documents as they are parsed; false otherwise.namespaceAware
- true
if the parser should provide support for XML namespaces; false
otherwise.allowDocTypeDeclaration
- true
if the parser should provide support for DOCTYPE declarations; false
otherwise. Creates a new node with the given parent, name, and attributes. The
default implementation returns an instance of
groovy.util.Node
.
parent
- the parent node, or null if the node being created is the
root nodename
- an Object representing the name of the node (typically
an instance of QName)attributes
- a Map of attribute names to attribute valuesReturn a name given the namespaceURI, localName and qName.
namespaceURI
- the namespace URIlocalName
- the local nameqName
- the qualified nameReturns the current keep ignorable whitespace setting.
Determine if namespace handling is enabled.
Returns the current trim whitespace setting.
Parses the content of the given file as XML turning it into a tree of Nodes.
file
- the File containing the XML to be parsedParse the content of the specified input source into a tree of Nodes.
input
- the InputSource for the XML to parseParse the content of the specified input stream into a tree of Nodes.
Note that using this method will not provide the parser with any URI for which to find DTDs etc
input
- an InputStream containing the XML to be parsedParse the content of the specified reader into a tree of Nodes.
Note that using this method will not provide the parser with any URI for which to find DTDs etc
in
- a Reader to read the XML to be parsedParse the content of the specified URI into a tree of Nodes.
uri
- a String containing a uri pointing to the XML to be parsedA helper method to parse the given text as XML.
text
- the XML text to parseSets the keep ignorable whitespace setting value.
keepIgnorableWhitespace
- the desired new valueEnable and/or disable namespace handling.
namespaceAware
- the new desired valueSets the trim whitespace setting value.
trimWhitespace
- the desired setting valueCopyright © 2003-2014 The Codehaus. All rights reserved.