Package com.android.utils
Class PositionXmlParser
- java.lang.Object
-
- com.android.utils.PositionXmlParser
-
public class PositionXmlParser extends java.lang.Object
A simple DOM XML parser which can retrieve exact beginning and end offsets (and line and column numbers) for element nodes as well as attribute nodes.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static SourcePosition
getPosition(org.w3c.dom.Node node)
Returns the position for the given node.static SourcePosition
getPosition(org.w3c.dom.Node node, int start, int end)
Returns the position for the given node.static java.lang.String
getXmlString(byte[] data)
Returns the String corresponding to the given byte array of XML data (with unknown encoding).static java.lang.String
getXmlString(byte[] data, java.lang.String defaultCharset)
Returns the String corresponding to the given byte array of XML data (with unknown encoding).static org.w3c.dom.Document
parse(byte[] data)
static org.w3c.dom.Document
parse(byte[] data, boolean checkDtd)
Parses the XML content from the given byte arraystatic org.w3c.dom.Document
parse(java.io.InputStream input)
static org.w3c.dom.Document
parse(java.io.InputStream input, boolean checkDtd)
Parses the XML content from the given input stream.static org.w3c.dom.Document
parse(java.lang.String xml)
Parses the given XML content.
-
-
-
Method Detail
-
parse
@NonNull public static org.w3c.dom.Document parse(@NonNull java.io.InputStream input, boolean checkDtd) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException
Parses the XML content from the given input stream.- Parameters:
input
- the input stream containing the XML to be parsedcheckDtd
- whether or not download the DTD and validate it- Returns:
- the corresponding document
- Throws:
javax.xml.parsers.ParserConfigurationException
- if a SAX parser is not availableorg.xml.sax.SAXException
- if the document contains a parsing errorjava.io.IOException
- if something is seriously wrong. This should not happen since the input source is known to be constructed from a string.
-
parse
@NonNull public static org.w3c.dom.Document parse(@NonNull java.io.InputStream input) throws java.io.IOException, org.xml.sax.SAXException, javax.xml.parsers.ParserConfigurationException
- Throws:
java.io.IOException
org.xml.sax.SAXException
javax.xml.parsers.ParserConfigurationException
- See Also:
parse(InputStream, boolean)
-
parse
@NonNull public static org.w3c.dom.Document parse(@NonNull byte[] data) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException
- Throws:
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
java.io.IOException
- See Also:
parse(byte[], boolean)
-
parse
@NonNull public static org.w3c.dom.Document parse(@NonNull byte[] data, boolean checkDtd) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException
Parses the XML content from the given byte array- Parameters:
data
- the raw XML data (with unknown encoding)checkDtd
- whether or not download the DTD and validate it- Returns:
- the corresponding document
- Throws:
javax.xml.parsers.ParserConfigurationException
- if a SAX parser is not availableorg.xml.sax.SAXException
- if the document contains a parsing errorjava.io.IOException
- if something is seriously wrong. This should not happen since the input source is known to be constructed from a string.
-
parse
@NonNull public static org.w3c.dom.Document parse(@NonNull java.lang.String xml) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException
Parses the given XML content.- Parameters:
xml
- the XML string to be parsed. This must be in the correct encoding already.- Returns:
- the corresponding document
- Throws:
javax.xml.parsers.ParserConfigurationException
- if a SAX parser is not availableorg.xml.sax.SAXException
- if the document contains a parsing errorjava.io.IOException
- if something is seriously wrong. This should not happen since the input source is known to be constructed from a string.
-
getXmlString
@NonNull public static java.lang.String getXmlString(@NonNull byte[] data)
Returns the String corresponding to the given byte array of XML data (with unknown encoding). This method attempts to guess the encoding based on the XML prologue.- Parameters:
data
- the XML data to be decoded into a string- Returns:
- a string corresponding to the XML data
-
getXmlString
@NonNull public static java.lang.String getXmlString(@NonNull byte[] data, @NonNull java.lang.String defaultCharset)
Returns the String corresponding to the given byte array of XML data (with unknown encoding). This method attempts to guess the encoding based on the XML prologue.- Parameters:
data
- the XML data to be decoded into a stringdefaultCharset
- the default charset to use if not specified by an encoding prologue attribute or a byte order mark- Returns:
- a string corresponding to the XML data
-
getPosition
@NonNull public static SourcePosition getPosition(@NonNull org.w3c.dom.Node node)
Returns the position for the given node. This is the start position. The end position can be obtained viaPositionXmlParser.Position.getEnd()
.- Parameters:
node
- the node to look up position for- Returns:
- the position, or null if the node type is not supported for position info
-
getPosition
@NonNull public static SourcePosition getPosition(@NonNull org.w3c.dom.Node node, int start, int end)
Returns the position for the given node. This is the start position. The end position can be obtained viaPositionXmlParser.Position.getEnd()
. A specific range within the node can be specified with thestart
andend
parameters.- Parameters:
node
- the node to look up position forstart
- the relative offset within the node range to use as the starting position, inclusive, or -1 to not limit the rangeend
- the relative offset within the node range to use as the ending position, or -1 to not limit the range- Returns:
- the position, or null if the node type is not supported for position info
-
-