groovy.util
public class XmlSlurper extends DefaultHandler
Parse XML into a document tree that may be traversed similar to XPath expressions. For example:
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()
Uses the defaults of not validating and namespace aware.
|
XmlSlurper(boolean validating,
boolean namespaceAware) |
XmlSlurper(SAXParser parser) |
XmlSlurper(XMLReader reader) |
Modifier and Type | Method and Description |
---|---|
void |
characters(char[] ch,
int start,
int length) |
void |
endDocument() |
void |
endElement(String namespaceURI,
String localName,
String qName) |
GPathResult |
getDocument() |
DTDHandler |
getDTDHandler() |
EntityResolver |
getEntityResolver() |
ErrorHandler |
getErrorHandler() |
boolean |
getFeature(String uri) |
Object |
getProperty(String uri) |
GPathResult |
parse(File file)
Parses the content of the given file as XML turning it into a GPathResult object
|
GPathResult |
parse(InputSource input)
Parse the content of the specified input source into a GPathResult object
|
GPathResult |
parse(InputStream input)
Parse the content of the specified input stream into an GPathResult Object.
|
GPathResult |
parse(Reader in)
Parse the content of the specified reader into a GPathResult Object.
|
GPathResult |
parse(String uri)
Parse the content of the specified URI into a GPathResult Object
|
GPathResult |
parseText(String text)
A helper method to parse the given text as XML
|
void |
setDTDHandler(DTDHandler dtdHandler) |
void |
setEntityBaseUrl(URL base)
Resolves entities against using the supplied URL as the base for relative URLs
|
void |
setEntityResolver(EntityResolver entityResolver) |
void |
setErrorHandler(ErrorHandler errorHandler) |
void |
setFeature(String uri,
boolean value) |
void |
setKeepWhitespace(boolean keepWhitespace) |
void |
setProperty(String uri,
Object value) |
void |
startDocument() |
void |
startElement(String namespaceURI,
String localName,
String qName,
Attributes atts) |
void |
startPrefixMapping(String tag,
String uri) |
endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, unparsedEntityDecl, warning
public XmlSlurper() throws ParserConfigurationException, SAXException
public XmlSlurper(boolean validating, boolean namespaceAware) throws ParserConfigurationException, SAXException
public XmlSlurper(XMLReader reader)
public XmlSlurper(SAXParser parser) throws SAXException
SAXException
public void setKeepWhitespace(boolean keepWhitespace)
keepWhitespace
- If true then whitespace before elements is kept.
The default is to discard the whitespace.public GPathResult getDocument()
public GPathResult parse(InputSource input) throws IOException, SAXException
input
- IOException
SAXException
public GPathResult parse(File file) throws IOException, SAXException
file
- IOException
SAXException
public GPathResult parse(InputStream input) throws IOException, SAXException
input
- IOException
SAXException
public GPathResult parse(Reader in) throws IOException, SAXException
in
- IOException
SAXException
public GPathResult parse(String uri) throws IOException, SAXException
uri
- IOException
SAXException
public GPathResult parseText(String text) throws IOException, SAXException
text
- IOException
SAXException
public DTDHandler getDTDHandler()
public EntityResolver getEntityResolver()
public ErrorHandler getErrorHandler()
public boolean getFeature(String uri) throws SAXNotRecognizedException, SAXNotSupportedException
public Object getProperty(String uri) throws SAXNotRecognizedException, SAXNotSupportedException
public void setDTDHandler(DTDHandler dtdHandler)
public void setEntityResolver(EntityResolver entityResolver)
public void setEntityBaseUrl(URL base)
base
- The URL used to resolve relative URLspublic void setErrorHandler(ErrorHandler errorHandler)
public void setFeature(String uri, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
public void setProperty(String uri, Object value) throws SAXNotRecognizedException, SAXNotSupportedException
public void startDocument() throws SAXException
startDocument
in interface ContentHandler
startDocument
in class DefaultHandler
SAXException
public void startPrefixMapping(String tag, String uri) throws SAXException
startPrefixMapping
in interface ContentHandler
startPrefixMapping
in class DefaultHandler
SAXException
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException
startElement
in interface ContentHandler
startElement
in class DefaultHandler
SAXException
public void characters(char[] ch, int start, int length) throws SAXException
characters
in interface ContentHandler
characters
in class DefaultHandler
SAXException
public void endElement(String namespaceURI, String localName, String qName) throws SAXException
endElement
in interface ContentHandler
endElement
in class DefaultHandler
SAXException
public void endDocument() throws SAXException
endDocument
in interface ContentHandler
endDocument
in class DefaultHandler
SAXException