public class XmlSlurper
extends org.xml.sax.helpers.DefaultHandler
def rootNode = new XmlSlurper().parseText( '<root><one a1="uno!"/><two>Some text!</two></root>' ) 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'] }
Note that in some cases, a 'selector' expression may not resolve to a single node. For example:
def rootNode = new XmlSlurper().parseText( '''<root> <a>one!</a> <a>two!</a> </root>''' ) assert rootNode.a.size() == 2 rootNode.a.each { assert it.text() in ['one!','two!'] }
GPathResult
Constructor and Description |
---|
XmlSlurper()
Creates a non-validating and namespace-aware
XmlSlurper which does not allow DOCTYPE declarations in documents. |
XmlSlurper(boolean validating,
boolean namespaceAware)
Creates a
XmlSlurper which does not allow DOCTYPE declarations in documents. |
XmlSlurper(boolean validating,
boolean namespaceAware,
boolean allowDocTypeDeclaration)
Creates a
XmlSlurper . |
XmlSlurper(javax.xml.parsers.SAXParser parser) |
XmlSlurper(org.xml.sax.XMLReader reader) |
Modifier and Type | Method and Description |
---|---|
void |
characters(char[] ch,
int start,
int length) |
void |
endDocument() |
void |
endElement(java.lang.String namespaceURI,
java.lang.String localName,
java.lang.String qName) |
GPathResult |
getDocument() |
org.xml.sax.DTDHandler |
getDTDHandler() |
org.xml.sax.EntityResolver |
getEntityResolver() |
org.xml.sax.ErrorHandler |
getErrorHandler() |
boolean |
getFeature(java.lang.String uri) |
java.lang.Object |
getProperty(java.lang.String uri) |
void |
ignorableWhitespace(char[] buffer,
int start,
int len) |
boolean |
isKeepIgnorableWhitespace() |
GPathResult |
parse(java.io.File file)
Parses the content of the given file as XML turning it into a GPathResult object
|
GPathResult |
parse(org.xml.sax.InputSource input)
Parse the content of the specified input source into a GPathResult object
|
GPathResult |
parse(java.io.InputStream input)
Parse the content of the specified input stream into an GPathResult Object.
|
GPathResult |
parse(java.io.Reader in)
Parse the content of the specified reader into a GPathResult Object.
|
GPathResult |
parse(java.lang.String uri)
Parse the content of the specified URI into a GPathResult Object
|
GPathResult |
parseText(java.lang.String text)
A helper method to parse the given text as XML
|
void |
setDTDHandler(org.xml.sax.DTDHandler dtdHandler) |
void |
setEntityBaseUrl(java.net.URL base)
Resolves entities against using the supplied URL as the base for relative URLs
|
void |
setEntityResolver(org.xml.sax.EntityResolver entityResolver) |
void |
setErrorHandler(org.xml.sax.ErrorHandler errorHandler) |
void |
setFeature(java.lang.String uri,
boolean value) |
void |
setKeepIgnorableWhitespace(boolean keepIgnorableWhitespace) |
void |
setKeepWhitespace(boolean keepWhitespace)
Deprecated.
use setKeepIgnorableWhitespace
|
void |
setProperty(java.lang.String uri,
java.lang.Object value) |
void |
startDocument() |
void |
startElement(java.lang.String namespaceURI,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes atts) |
void |
startPrefixMapping(java.lang.String tag,
java.lang.String uri) |
public XmlSlurper() throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
XmlSlurper
which does not allow DOCTYPE declarations in documents.javax.xml.parsers.ParserConfigurationException
- if no parser which satisfies the requested configuration can be created.org.xml.sax.SAXException
- for SAX errors.public XmlSlurper(boolean validating, boolean namespaceAware) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
XmlSlurper
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.javax.xml.parsers.ParserConfigurationException
- if no parser which satisfies the requested configuration can be created.org.xml.sax.SAXException
- for SAX errors.public XmlSlurper(boolean validating, boolean namespaceAware, boolean allowDocTypeDeclaration) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
XmlSlurper
.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.javax.xml.parsers.ParserConfigurationException
- if no parser which satisfies the requested configuration can be created.org.xml.sax.SAXException
- for SAX errors.public XmlSlurper(org.xml.sax.XMLReader reader)
public XmlSlurper(javax.xml.parsers.SAXParser parser) throws org.xml.sax.SAXException
org.xml.sax.SAXException
@Deprecated public void setKeepWhitespace(boolean keepWhitespace)
keepWhitespace
- If true then whitespace before elements is kept.
The default is to discard the whitespace.public void setKeepIgnorableWhitespace(boolean keepIgnorableWhitespace)
keepIgnorableWhitespace
- If true then ignorable whitespace (i.e. whitespace before elements) is kept.
The default is to discard the whitespace.public boolean isKeepIgnorableWhitespace()
public GPathResult getDocument()
public GPathResult parse(org.xml.sax.InputSource input) throws java.io.IOException, org.xml.sax.SAXException
input
- the InputSource to parseorg.xml.sax.SAXException
- Any SAX exception, possibly wrapping another exception.java.io.IOException
- An IO exception from the parser, possibly from a byte stream
or character stream supplied by the application.public GPathResult parse(java.io.File file) throws java.io.IOException, org.xml.sax.SAXException
file
- the File to parseorg.xml.sax.SAXException
- Any SAX exception, possibly wrapping another exception.java.io.IOException
- An IO exception from the parser, possibly from a byte stream
or character stream supplied by the application.public GPathResult parse(java.io.InputStream input) throws java.io.IOException, org.xml.sax.SAXException
input
- the InputStream to parseorg.xml.sax.SAXException
- Any SAX exception, possibly wrapping another exception.java.io.IOException
- An IO exception from the parser, possibly from a byte stream
or character stream supplied by the application.public GPathResult parse(java.io.Reader in) throws java.io.IOException, org.xml.sax.SAXException
in
- the Reader to parseorg.xml.sax.SAXException
- Any SAX exception, possibly wrapping another exception.java.io.IOException
- An IO exception from the parser, possibly from a byte stream
or character stream supplied by the application.public GPathResult parse(java.lang.String uri) throws java.io.IOException, org.xml.sax.SAXException
uri
- a String containing the URI to parseorg.xml.sax.SAXException
- Any SAX exception, possibly wrapping another exception.java.io.IOException
- An IO exception from the parser, possibly from a byte stream
or character stream supplied by the application.public GPathResult parseText(java.lang.String text) throws java.io.IOException, org.xml.sax.SAXException
text
- a String containing XML to parseorg.xml.sax.SAXException
- Any SAX exception, possibly wrapping another exception.java.io.IOException
- An IO exception from the parser, possibly from a byte stream
or character stream supplied by the application.public org.xml.sax.DTDHandler getDTDHandler()
public org.xml.sax.EntityResolver getEntityResolver()
public org.xml.sax.ErrorHandler getErrorHandler()
public boolean getFeature(java.lang.String uri) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public java.lang.Object getProperty(java.lang.String uri) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public void setDTDHandler(org.xml.sax.DTDHandler dtdHandler)
public void setEntityResolver(org.xml.sax.EntityResolver entityResolver)
public void setEntityBaseUrl(java.net.URL base)
base
- The URL used to resolve relative URLspublic void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
public void setFeature(java.lang.String uri, boolean value) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public void setProperty(java.lang.String uri, java.lang.Object value) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public void startDocument() throws org.xml.sax.SAXException
startDocument
in interface org.xml.sax.ContentHandler
startDocument
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void startPrefixMapping(java.lang.String tag, java.lang.String uri) throws org.xml.sax.SAXException
startPrefixMapping
in interface org.xml.sax.ContentHandler
startPrefixMapping
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException
startElement
in interface org.xml.sax.ContentHandler
startElement
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void ignorableWhitespace(char[] buffer, int start, int len) throws org.xml.sax.SAXException
ignorableWhitespace
in interface org.xml.sax.ContentHandler
ignorableWhitespace
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
characters
in interface org.xml.sax.ContentHandler
characters
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
endElement
in interface org.xml.sax.ContentHandler
endElement
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void endDocument() throws org.xml.sax.SAXException
endDocument
in interface org.xml.sax.ContentHandler
endDocument
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException