com.raritantechnologies.utils
Class DOMUtils

java.lang.Object
  extended bycom.raritantechnologies.utils.DOMUtils

public class DOMUtils
extends java.lang.Object

Does some standard org.w3c.dom chores on XML documents.


Developed by Raritan Technologies .

Author:
Ted Sullivan

Field Summary
static java.lang.String transformerFactoryImpl
          NOTE: Setting this will be JVM wide.
 
Constructor Summary
DOMUtils()
           
 
Method Summary
static boolean checkBooleanAttribute(org.w3c.dom.Element elem, java.lang.String attrib, java.lang.String defaultString, boolean defaultValue)
          Tests a DOM element for the presence of an attribute, and sets a boolean flag based on its presence and string value (if any).
static org.w3c.dom.Element copyElementToDocument(org.w3c.dom.Document doc, org.w3c.dom.Element parent, org.w3c.dom.Element child)
           
static org.w3c.dom.Element copyElementToDocument(org.w3c.dom.Document doc, org.w3c.dom.Element parent, org.w3c.dom.Element child, boolean removeNamespace)
           
static org.w3c.dom.Element copyElementToNewDocument(org.w3c.dom.Element elem)
           
static org.w3c.dom.Document createDocument(java.io.InputStream is)
           
static org.w3c.dom.Document createDocument(java.io.Reader xmlSource)
           
static org.w3c.dom.Document createDocument(java.io.Reader xmlSource, java.lang.String charSet)
           
static org.w3c.dom.Document createDocument(java.lang.String pFilePath)
           
static org.w3c.dom.Document createDocument(java.lang.String pFilePath, java.lang.String charSet)
           
static javax.xml.transform.Transformer createTransformer(java.io.Reader xslSource)
           
static java.lang.String extractTextFrom(org.w3c.dom.Node node)
          returns the text within the DOM Node either as a Text or CData sections.
static org.w3c.dom.Element getChildElement(org.w3c.dom.Element parent, java.lang.String name)
           
static java.util.HashMap getDescendentParentMap(org.w3c.dom.Element contextNode, java.lang.String parentXPath, java.lang.String parentNamePath, java.lang.String descendentTag, java.lang.String descendentNameAttrib)
          Creates a HashMap of Descendent node value --> HashSet of Parent nodes.
static org.w3c.dom.Document getEncryptedDocument(java.lang.String fileName)
           
static org.w3c.dom.NodeList getNodeList(org.w3c.dom.Node contextNode, java.lang.String xPathExpr)
           
static java.lang.String getNodeValue(org.w3c.dom.Node node)
           
static java.lang.String getXMLString(org.w3c.dom.Document doc)
           
static java.lang.String getXMLString(org.w3c.dom.Document doc, java.lang.String charset)
           
static java.lang.String getXMLString(org.w3c.dom.Element elem)
           
static java.lang.String getXMLString(org.w3c.dom.Element elem, java.lang.String charSet)
           
static java.lang.String getXPathValue(org.w3c.dom.Node contextNode, java.lang.String xPathExpr)
           
static java.lang.String[] getXPathValues(org.w3c.dom.Node contextNode, java.lang.String xPathExpr)
          returns a list of text values for a DOM node and an xPath expression.
static void outputXML(org.w3c.dom.Document doc, java.io.Writer writer)
           
static void outputXML(org.w3c.dom.Document doc, java.io.Writer writer, java.lang.String xslTransformFile)
           
static void outputXML(org.w3c.dom.Document doc, java.io.Writer writer, javax.xml.transform.Transformer transformer)
           
static void outputXML(org.w3c.dom.Element elem, java.io.Writer writer)
           
static void outputXML(org.w3c.dom.Element elem, java.io.Writer writer, javax.xml.transform.Transformer transformer)
           
static void outputXML(java.lang.String xmlIn, java.io.Writer writer, java.lang.String xslTransformFile)
           
static void outputXML(java.lang.String xmlIn, java.io.Writer writer, javax.xml.transform.Transformer transformer)
           
static void outputXMLEncoded(org.w3c.dom.Document doc, java.io.Writer writer, java.lang.String charSet)
           
static void outputXMLEncoded(org.w3c.dom.Element elem, java.io.Writer writer, java.lang.String charSet)
           
static void printXML(org.w3c.dom.Document doc)
           
static void printXML(org.w3c.dom.Element elem)
           
static void setNodeValue(org.w3c.dom.Node node, java.lang.String value)
          sets the node "value" if an element, sets its Text area (CData) to the value if the node is an Attribute - sets it.
static void setXPathValue(org.w3c.dom.Node contextNode, java.lang.String xPathLocation, java.lang.String value)
          Sets the value of a Node using an XPath Expression.
static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc, java.io.File xslTransformFile)
           
static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc, java.io.File xslTransformFile, java.lang.String transformMethod)
           
static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc, java.io.Reader xslSource)
           
static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc, javax.xml.transform.Transformer transformer)
           
static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc, javax.xml.transform.Transformer transformer, java.lang.String transformMethod)
           
static org.w3c.dom.Document transformDocument(java.io.Reader xslSource, java.io.Reader xmlSource)
           
static java.lang.String transformXMLFileToString(java.lang.String xslFile, java.lang.String xmlFile)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

transformerFactoryImpl

public static java.lang.String transformerFactoryImpl
NOTE: Setting this will be JVM wide. (cross-application) A better way is to put the string in a file called: META-INF/services/javax.xml.transform.TransformerFactory An even better way is to have a system parameter in the config xml with this string.

Constructor Detail

DOMUtils

public DOMUtils()
Method Detail

createDocument

public static org.w3c.dom.Document createDocument(java.io.InputStream is)

createDocument

public static org.w3c.dom.Document createDocument(java.lang.String pFilePath)

createDocument

public static org.w3c.dom.Document createDocument(java.lang.String pFilePath,
                                                  java.lang.String charSet)

createDocument

public static org.w3c.dom.Document createDocument(java.io.Reader xmlSource)

createDocument

public static org.w3c.dom.Document createDocument(java.io.Reader xmlSource,
                                                  java.lang.String charSet)

getEncryptedDocument

public static org.w3c.dom.Document getEncryptedDocument(java.lang.String fileName)

getXMLString

public static java.lang.String getXMLString(org.w3c.dom.Document doc)

getXMLString

public static java.lang.String getXMLString(org.w3c.dom.Document doc,
                                            java.lang.String charset)

getXMLString

public static java.lang.String getXMLString(org.w3c.dom.Element elem)

getXMLString

public static java.lang.String getXMLString(org.w3c.dom.Element elem,
                                            java.lang.String charSet)

printXML

public static void printXML(org.w3c.dom.Document doc)

printXML

public static void printXML(org.w3c.dom.Element elem)

outputXML

public static void outputXML(org.w3c.dom.Document doc,
                             java.io.Writer writer)

outputXMLEncoded

public static void outputXMLEncoded(org.w3c.dom.Document doc,
                                    java.io.Writer writer,
                                    java.lang.String charSet)

outputXML

public static void outputXML(org.w3c.dom.Element elem,
                             java.io.Writer writer)

outputXMLEncoded

public static void outputXMLEncoded(org.w3c.dom.Element elem,
                                    java.io.Writer writer,
                                    java.lang.String charSet)

outputXML

public static void outputXML(org.w3c.dom.Document doc,
                             java.io.Writer writer,
                             javax.xml.transform.Transformer transformer)

outputXML

public static void outputXML(org.w3c.dom.Element elem,
                             java.io.Writer writer,
                             javax.xml.transform.Transformer transformer)

outputXML

public static void outputXML(org.w3c.dom.Document doc,
                             java.io.Writer writer,
                             java.lang.String xslTransformFile)

outputXML

public static void outputXML(java.lang.String xmlIn,
                             java.io.Writer writer,
                             javax.xml.transform.Transformer transformer)

outputXML

public static void outputXML(java.lang.String xmlIn,
                             java.io.Writer writer,
                             java.lang.String xslTransformFile)

transformDocument

public static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc,
                                                     javax.xml.transform.Transformer transformer)

transformDocument

public static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc,
                                                     javax.xml.transform.Transformer transformer,
                                                     java.lang.String transformMethod)

transformDocument

public static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc,
                                                     java.io.File xslTransformFile)

transformDocument

public static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc,
                                                     java.io.File xslTransformFile,
                                                     java.lang.String transformMethod)

transformDocument

public static org.w3c.dom.Document transformDocument(org.w3c.dom.Document doc,
                                                     java.io.Reader xslSource)

transformDocument

public static org.w3c.dom.Document transformDocument(java.io.Reader xslSource,
                                                     java.io.Reader xmlSource)

transformXMLFileToString

public static java.lang.String transformXMLFileToString(java.lang.String xslFile,
                                                        java.lang.String xmlFile)

createTransformer

public static javax.xml.transform.Transformer createTransformer(java.io.Reader xslSource)

extractTextFrom

public static java.lang.String extractTextFrom(org.w3c.dom.Node node)
returns the text within the DOM Node either as a Text or CData sections.


getXPathValue

public static java.lang.String getXPathValue(org.w3c.dom.Node contextNode,
                                             java.lang.String xPathExpr)

getXPathValues

public static java.lang.String[] getXPathValues(org.w3c.dom.Node contextNode,
                                                java.lang.String xPathExpr)
returns a list of text values for a DOM node and an xPath expression.


setXPathValue

public static void setXPathValue(org.w3c.dom.Node contextNode,
                                 java.lang.String xPathLocation,
                                 java.lang.String value)
Sets the value of a Node using an XPath Expression. Used to set Attributes and Text Nodes


getNodeList

public static org.w3c.dom.NodeList getNodeList(org.w3c.dom.Node contextNode,
                                               java.lang.String xPathExpr)

getNodeValue

public static java.lang.String getNodeValue(org.w3c.dom.Node node)

setNodeValue

public static void setNodeValue(org.w3c.dom.Node node,
                                java.lang.String value)
sets the node "value" if an element, sets its Text area (CData) to the value if the node is an Attribute - sets it.


getChildElement

public static org.w3c.dom.Element getChildElement(org.w3c.dom.Element parent,
                                                  java.lang.String name)

checkBooleanAttribute

public static boolean checkBooleanAttribute(org.w3c.dom.Element elem,
                                            java.lang.String attrib,
                                            java.lang.String defaultString,
                                            boolean defaultValue)

Tests a DOM element for the presence of an attribute, and sets a boolean flag based on its presence and string value (if any). Example:

 boolean myFlag = DOMUtils.checkBooleanAttribute(tagElement,
     "myFlagAttrib", "true", true);
 

will set myFlag to true if (and only if) a myFlagAttrib attribute is present on the tag and has the string value "true"; otherwise, myFlag will be false

Note: These use cases will illustrate the method's behavior:

Another way of looking at this is as follows:

checkBooleanAttribute will return its defaultValue if the attribute is present and contains any value other than the defaultString.

Parameters:
elem - - The DOM element containing the tag to be inspected.
attrib - - The DOM element attribute that determines the value.
defaultString - - The String reprentation of the default value.
defaultValue - - The boolean value to return if the default case is selected.
Returns:
- a boolean value based on the evaluation.

copyElementToNewDocument

public static org.w3c.dom.Element copyElementToNewDocument(org.w3c.dom.Element elem)

copyElementToDocument

public static org.w3c.dom.Element copyElementToDocument(org.w3c.dom.Document doc,
                                                        org.w3c.dom.Element parent,
                                                        org.w3c.dom.Element child)

copyElementToDocument

public static org.w3c.dom.Element copyElementToDocument(org.w3c.dom.Document doc,
                                                        org.w3c.dom.Element parent,
                                                        org.w3c.dom.Element child,
                                                        boolean removeNamespace)

getDescendentParentMap

public static java.util.HashMap getDescendentParentMap(org.w3c.dom.Element contextNode,
                                                       java.lang.String parentXPath,
                                                       java.lang.String parentNamePath,
                                                       java.lang.String descendentTag,
                                                       java.lang.String descendentNameAttrib)
Creates a HashMap of Descendent node value --> HashSet of Parent nodes.