com.android.utils
Class XmlUtils

java.lang.Object
  extended by com.android.utils.XmlUtils

public class XmlUtils
extends java.lang.Object

XML Utilities


Field Summary
static java.lang.String XML_COMMENT_BEGIN
           
static java.lang.String XML_COMMENT_END
           
static java.lang.String XML_PROLOG
           
 
Constructor Summary
XmlUtils()
           
 
Method Summary
static void appendXmlAttributeValue(java.lang.StringBuilder sb, java.lang.String attrValue)
          Appends text to the given StringBuilder and escapes it as required for a DOM attribute node.
static void appendXmlTextValue(java.lang.StringBuilder sb, java.lang.String textValue)
          Appends text to the given StringBuilder and escapes it as required for a DOM text node.
static java.lang.String formatFloatAttribute(double value)
          Format the given floating value into an XML string, omitting decimals if 0
static boolean hasElementChildren(org.w3c.dom.Node node)
          Returns true if the given node has one or more element children
static java.lang.String lookupNamespacePrefix(org.w3c.dom.Node node, java.lang.String nsUri)
          Returns the namespace prefix matching the requested namespace URI.
static java.lang.String lookupNamespacePrefix(org.w3c.dom.Node node, java.lang.String nsUri, boolean create)
          Returns the namespace prefix matching the requested namespace URI.
static java.lang.String lookupNamespacePrefix(org.w3c.dom.Node node, java.lang.String nsUri, java.lang.String defaultPrefix, boolean create)
          Returns the namespace prefix matching the requested namespace URI.
static org.w3c.dom.Document parseDocumentSilently(java.lang.String xml, boolean namespaceAware)
          Parses the given XML string as a DOM document, using the JDK parser.
static java.lang.String toXml(org.w3c.dom.Node node, boolean preserveWhitespace)
          Dump an XML tree to string.
static java.lang.String toXmlAttributeValue(java.lang.String attrValue)
          Converts the given attribute value to an XML-attribute-safe value, meaning that single and double quotes are replaced with their corresponding XML entities.
static java.lang.String toXmlTextValue(java.lang.String textValue)
          Converts the given attribute value to an XML-text-safe value, meaning that less than and ampersand characters are escaped.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_COMMENT_BEGIN

public static final java.lang.String XML_COMMENT_BEGIN
See Also:
Constant Field Values

XML_COMMENT_END

public static final java.lang.String XML_COMMENT_END
See Also:
Constant Field Values

XML_PROLOG

public static final java.lang.String XML_PROLOG
See Also:
Constant Field Values
Constructor Detail

XmlUtils

public XmlUtils()
Method Detail

lookupNamespacePrefix

@NonNull
public static java.lang.String lookupNamespacePrefix(@NonNull
                                                             org.w3c.dom.Node node,
                                                             @NonNull
                                                             java.lang.String nsUri)
Returns the namespace prefix matching the requested namespace URI. If no such declaration is found, returns the default "android" prefix for the Android URI, and "app" for other URI's. By default the app namespace will be created. If this is not desirable, call lookupNamespacePrefix(Node, String, boolean) instead.

Parameters:
node - The current node. Must not be null.
nsUri - The namespace URI of which the prefix is to be found, e.g. SdkConstants.ANDROID_URI
Returns:
The first prefix declared or the default "android" prefix (or "app" for non-Android URIs)

lookupNamespacePrefix

@NonNull
public static java.lang.String lookupNamespacePrefix(@NonNull
                                                             org.w3c.dom.Node node,
                                                             @NonNull
                                                             java.lang.String nsUri,
                                                             boolean create)
Returns the namespace prefix matching the requested namespace URI. If no such declaration is found, returns the default "android" prefix for the Android URI, and "app" for other URI's.

Parameters:
node - The current node. Must not be null.
nsUri - The namespace URI of which the prefix is to be found, e.g. SdkConstants.ANDROID_URI
create - whether the namespace declaration should be created, if necessary
Returns:
The first prefix declared or the default "android" prefix (or "app" for non-Android URIs)

lookupNamespacePrefix

public static java.lang.String lookupNamespacePrefix(@Nullable
                                                     org.w3c.dom.Node node,
                                                     @Nullable
                                                     java.lang.String nsUri,
                                                     @Nullable
                                                     java.lang.String defaultPrefix,
                                                     boolean create)
Returns the namespace prefix matching the requested namespace URI. If no such declaration is found, returns the default "android" prefix.

Parameters:
node - The current node. Must not be null.
nsUri - The namespace URI of which the prefix is to be found, e.g. SdkConstants.ANDROID_URI
defaultPrefix - The default prefix (root) to use if the namespace is not found. If null, do not create a new namespace if this URI is not defined for the document.
create - whether the namespace declaration should be created, if necessary
Returns:
The first prefix declared or the provided prefix (possibly with a number appended to avoid conflicts with existing prefixes.

toXmlAttributeValue

@NonNull
public static java.lang.String toXmlAttributeValue(@NonNull
                                                           java.lang.String attrValue)
Converts the given attribute value to an XML-attribute-safe value, meaning that single and double quotes are replaced with their corresponding XML entities.

Parameters:
attrValue - the value to be escaped
Returns:
the escaped value

toXmlTextValue

@NonNull
public static java.lang.String toXmlTextValue(@NonNull
                                                      java.lang.String textValue)
Converts the given attribute value to an XML-text-safe value, meaning that less than and ampersand characters are escaped.

Parameters:
textValue - the text value to be escaped
Returns:
the escaped value

appendXmlAttributeValue

public static void appendXmlAttributeValue(@NonNull
                                           java.lang.StringBuilder sb,
                                           @NonNull
                                           java.lang.String attrValue)
Appends text to the given StringBuilder and escapes it as required for a DOM attribute node.

Parameters:
sb - the string builder
attrValue - the attribute value to be appended and escaped

appendXmlTextValue

public static void appendXmlTextValue(@NonNull
                                      java.lang.StringBuilder sb,
                                      @NonNull
                                      java.lang.String textValue)
Appends text to the given StringBuilder and escapes it as required for a DOM text node.

Parameters:
sb - the string builder
textValue - the text value to be appended and escaped

hasElementChildren

public static boolean hasElementChildren(@NonNull
                                         org.w3c.dom.Node node)
Returns true if the given node has one or more element children

Parameters:
node - the node to test for element children
Returns:
true if the node has one or more element children

parseDocumentSilently

@Nullable
public static org.w3c.dom.Document parseDocumentSilently(@NonNull
                                                                  java.lang.String xml,
                                                                  boolean namespaceAware)
Parses the given XML string as a DOM document, using the JDK parser. The parser does not validate, and is namespace aware.

Parameters:
xml - the XML content to be parsed (must be well formed)
namespaceAware - whether the parser is namespace aware
Returns:
the DOM document, or null

toXml

public static java.lang.String toXml(org.w3c.dom.Node node,
                                     boolean preserveWhitespace)
Dump an XML tree to string. This does not perform any pretty printing. To perform pretty printing, use XmlPrettyPrinter.prettyPrint(node) in sdk-common.


formatFloatAttribute

public static java.lang.String formatFloatAttribute(double value)
Format the given floating value into an XML string, omitting decimals if 0

Parameters:
value - the value to be formatted
Returns:
the corresponding XML string for the value