public class XmlParser extends Object implements ContentHandler
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:
import groovy.xml.XmlParser 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 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 Params | Return Type | Name and description |
---|---|---|
|
protected void |
addTextToNode() |
|
public 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. |
|
public void |
endDocument() |
|
public void |
endElement(String namespaceURI, String localName, String qName) |
|
public void |
endPrefixMapping(String prefix) |
|
public DTDHandler |
getDTDHandler() |
|
public Locator |
getDocumentLocator() |
|
protected Object |
getElementName(String namespaceURI, String localName, String qName) Return a name given the namespaceURI, localName and qName. |
|
public EntityResolver |
getEntityResolver() |
|
public ErrorHandler |
getErrorHandler() |
|
public boolean |
getFeature(String uri) |
|
public Object |
getProperty(String uri) |
|
protected XMLReader |
getXMLReader() |
|
public void |
ignorableWhitespace(char[] buffer, int start, int len) |
|
public boolean |
isKeepIgnorableWhitespace() Returns the current keep ignorable whitespace setting. |
|
public boolean |
isNamespaceAware() Determine if namespace handling is enabled. |
|
public boolean |
isTrimWhitespace() Returns the current trim whitespace setting. |
|
public Node |
parse(File file) Parses the content of the given file as XML turning it into a tree of Nodes. |
|
public Node |
parse(InputSource input) Parse the content of the specified input source into a tree of Nodes. |
|
public Node |
parse(InputStream input) Parse the content of the specified input stream into a tree of Nodes. |
|
public Node |
parse(Reader in) Parse the content of the specified reader into a tree of Nodes. |
|
public Node |
parse(String uri) Parse the content of the specified URI into a tree of Nodes. |
|
public Node |
parseText(String text) A helper method to parse the given text as XML. |
|
public void |
processingInstruction(String target, String data) |
|
public void |
setDTDHandler(DTDHandler dtdHandler) |
|
public void |
setDocumentLocator(Locator locator) |
|
public void |
setEntityResolver(EntityResolver entityResolver) |
|
public void |
setErrorHandler(ErrorHandler errorHandler) |
|
public void |
setFeature(String uri, boolean value) |
|
public void |
setKeepIgnorableWhitespace(boolean keepIgnorableWhitespace) Sets the keep ignorable whitespace setting value. |
|
public void |
setNamespaceAware(boolean namespaceAware) Enable and/or disable namespace handling. |
|
public void |
setProperty(String uri, Object value) |
|
public void |
setTrimWhitespace(boolean trimWhitespace) Sets the trim whitespace setting value. |
|
public void |
skippedEntity(String name) |
|
public void |
startDocument() |
|
public void |
startElement(String namespaceURI, String localName, String qName, Attributes list) |
|
public void |
startPrefixMapping(String prefix, String namespaceURI) |
Creates a non-validating and 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-2022 The Apache Software Foundation. All rights reserved.