Class XmlDOMParser
- java.lang.Object
-
- com.aquima.interactions.foundation.xml.parsing.XmlDOMParser
-
- All Implemented Interfaces:
IXmlParser
public class XmlDOMParser extends Object implements IXmlParser
DOM Parser with error handling in place (validating or normal).This is a convenience wrapper around the JAXP DocumentBuilder, which in turn is the pluggable XML API for any compatible DOM parser. Notice that this is a synchronous parser that may be used by one thread only! It is fine to reuse the parser after parsing has finished.
This parser returns custom XMLElement objects instead of org.w3c.dom.Document / Node, to make it much easer to access the relevant data (attributes, values,...)
Developed using JAXP 1.1, previous versions will not work. JDK 1.4 comes with a JAXP parser, or use a recent Apache Xerces parser.
Example use:
XmlDOMParser parser = new XmlDOMParserBuilder().namespaceAware(true).entityResolver(theDTDMgr).build(); // create an XML document source, for instance from a file: InputStream inputStream = new FileInputStream(xmlfile); // parse it! IXmlNode root = parser.parse(inputStream); // ... process root... // if any errors: parser.getErrors() or XMLException.getParseErrors()... process...
- Since:
- 5.0
- Author:
- IdJ
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
XmlDOMParser.XmlDOMParserBuilder
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanup()
Clean up internal storage (such as the errorHandler's list of errors).boolean
getCoalescing()
Specifies that the parser produced by this code will convert CDATA nodes to Text nodes and append it to the adjacent (if any) text node.EntityResolver
getEntityResolver()
String[]
getErrors()
Return an array of the errors that were encountered.boolean
getNamespaceAware()
long
getParseTime()
Get the time in milliseconds it took for the parse method to run.boolean
getValidating()
boolean
getValueTrimming()
IXmlNode
parse(InputStream source)
Parses the given SAX2 input source (with the DOM parser) and returns the root element.IXmlNode
parse(String strXml)
Parses the given XML doc and returns the root element.String
toString()
-
-
-
Method Detail
-
getValidating
public boolean getValidating()
- Returns:
- Boolean indicating if the XML should be validated.
-
getNamespaceAware
public boolean getNamespaceAware()
- Returns:
- Boolean indicating if the parser should consider name-spaces.
-
getValueTrimming
public boolean getValueTrimming()
- Returns:
- Boolean indicating if white-spaces should be removed while parsing.
-
getCoalescing
public boolean getCoalescing()
Specifies that the parser produced by this code will convert CDATA nodes to Text nodes and append it to the adjacent (if any) text node. By default the value of this is set tofalse
- Returns:
- true if the parser produced will convert CDATA nodes to Text nodes and append it to the adjacent (if any) text node; false otherwise.
-
getEntityResolver
public EntityResolver getEntityResolver()
- Returns:
- The entity resolver that is used.
-
getErrors
public String[] getErrors()
Return an array of the errors that were encountered.- Specified by:
getErrors
in interfaceIXmlParser
- Returns:
- array of errors, may be empty, but never null.
-
parse
public IXmlNode parse(String strXml) throws XmlParseException
Parses the given XML doc and returns the root element. You may call this again for a new document after parsing has finished. Note that the platform's default charset is used, when the doc string cannot be encoded in the default charset it's behaviour is unspecified. (use parse(InputStream source) for more control over the used charset/encoding)- Parameters:
strXml
- a XML document as a String- Returns:
- XMLElement that represents the root of the XML document
- Throws:
XmlParseException
- in case of XML errors
-
parse
public IXmlNode parse(InputStream source) throws XmlParseException, IOException
Parses the given SAX2 input source (with the DOM parser) and returns the root element. You may call this again for a new document after parsing has finished.- Specified by:
parse
in interfaceIXmlParser
- Parameters:
source
- a SAX2 input source from which the XML is read- Returns:
- XMLElement that represents the root of the XML document
- Throws:
XmlParseException
- in case of XML errorsIOException
- when the source can't be read
-
getParseTime
public long getParseTime()
Get the time in milliseconds it took for the parse method to run.- Specified by:
getParseTime
in interfaceIXmlParser
- Returns:
- The parse time in milliseconds.
-
cleanup
public void cleanup()
Clean up internal storage (such as the errorHandler's list of errors).
-
-