com.android.utils
Class PositionXmlParser

java.lang.Object
  extended by 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
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 array
static 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 parsed
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 available
org.xml.sax.SAXException - if the document contains a parsing error
java.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 available
org.xml.sax.SAXException - if the document contains a parsing error
java.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 available
org.xml.sax.SAXException - if the document contains a parsing error
java.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 string
defaultCharset - 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 via 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 via Position#getEnd(). A specific range within the node can be specified with the start and end parameters.

Parameters:
node - the node to look up position for
start - the relative offset within the node range to use as the starting position, inclusive, or -1 to not limit the range
end - 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