Apache CXF API

org.apache.cxf.helpers
Class DOMUtils

java.lang.Object
  extended by org.apache.cxf.helpers.DOMUtils

public final class DOMUtils
extends Object

Few simple utils to read DOM. This is originally from the Jakarta Commons Modeler.

Author:
Costin Manolache

Nested Class Summary
static class DOMUtils.NullResolver
           
 
Method Summary
static void addNamespacePrefix(Element element, String namespaceUri, String prefix)
          Add a namespace prefix definition to an element.
static Document createDocument()
           
static DocumentBuilder createDocumentBuilder()
           
static String createNamespace(Element el, String ns)
           
static List<Element> findAllElementsByTagName(Element elem, String tagName)
           
static List<Element> findAllElementsByTagNameNS(Element elem, String nameSpaceURI, String localName)
           
static Node findChildWithAtt(Node parent, String elemName, String attName, String attVal)
          Find the first direct child with a given attribute.
static String getAttribute(Element element, QName attName)
           
static String getAttribute(Node element, String attName)
           
static String getAttributeValueEmptyNull(Element e, String attributeName)
          This function is much like getAttribute, but returns null, not "", for a nonexistent attribute.
static Node getChild(Node parent, int type)
          Get the first child of the specified type.
static Node getChild(Node parent, String name)
          Get the first element child.
static String getChildContent(Node parent, String name)
          Get the first child's content ( ie it's included TEXT node ).
static List<Element> getChildrenWithName(Element parent, String ns, String localName)
          Return child elements with specified name.
static List<Element> getChildrenWithNamespace(Element parent, String ns)
          Returns all child elements with specified namespace.
static String getContent(Node n)
          Get the trimmed text content of a node or null if there is no text
static QName getElementQName(Element el)
           
static Element getFirstChildWithName(Element parent, QName q)
          Return the first element child with the specified qualified name.
static Element getFirstChildWithName(Element parent, String ns, String lp)
          Return the first element child with the specified qualified name.
static Element getFirstElement(Node parent)
          Get the first direct child with a given type
static String getNamespace(Node node, String searchPrefix)
          Starting from a node, find the namespace declaration for a prefix.
static Node getNext(Node current)
          Get the next sibling with the same name and type
static Node getNext(Node current, String name, int type)
          Return the next sibling with a given name and type
static Element getNextElement(Element el)
           
static String getPrefix(Element el, String ns)
           
static void getPrefixes(Element element, String namespaceUri, List<String> prefixes)
          Get all prefixes defined on this element for the specified namespace.
static void getPrefixesRecursive(Element element, String namespaceUri, List<String> prefixes)
          Get all prefixes defined, up to the root, for a namespace URI.
static String getPrefixRecursive(Element el, String ns)
           
static String getRawContent(Node n)
          Get the raw text content of a node or null if there is no text
static boolean hasElementInNS(Element el, String namespace)
           
static Document readXml(InputStream is)
          Read XML as DOM.
static Document readXml(Reader is)
           
static Document readXml(StreamSource is)
           
static void removeAttribute(Node node, String attName)
           
static void setAttribute(Node node, String attName, String val)
           
static String setNamespace(Element element, String namespace, String prefix)
          Set a namespace/prefix on an element if it is not set already.
static void setText(Node node, String val)
          Set or replace the text value
static void writeXml(Node n, OutputStream os)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getAttributeValueEmptyNull

public static String getAttributeValueEmptyNull(Element e,
                                                String attributeName)
This function is much like getAttribute, but returns null, not "", for a nonexistent attribute.

Parameters:
e -
attributeName -
Returns:

getContent

public static String getContent(Node n)
Get the trimmed text content of a node or null if there is no text


getRawContent

public static String getRawContent(Node n)
Get the raw text content of a node or null if there is no text


getChild

public static Node getChild(Node parent,
                            String name)
Get the first element child.

Parameters:
parent - lookup direct childs
name - name of the element. If null return the first element.

getAttribute

public static String getAttribute(Node element,
                                  String attName)

getAttribute

public static String getAttribute(Element element,
                                  QName attName)

setAttribute

public static void setAttribute(Node node,
                                String attName,
                                String val)

removeAttribute

public static void removeAttribute(Node node,
                                   String attName)

setText

public static void setText(Node node,
                           String val)
Set or replace the text value


findChildWithAtt

public static Node findChildWithAtt(Node parent,
                                    String elemName,
                                    String attName,
                                    String attVal)
Find the first direct child with a given attribute.

Parameters:
parent -
elemName - name of the element, or null for any
attName - attribute we're looking for
attVal - attribute value or null if we just want any

getChildContent

public static String getChildContent(Node parent,
                                     String name)
Get the first child's content ( ie it's included TEXT node ).


getElementQName

public static QName getElementQName(Element el)

getFirstElement

public static Element getFirstElement(Node parent)
Get the first direct child with a given type


getNextElement

public static Element getNextElement(Element el)

getFirstChildWithName

public static Element getFirstChildWithName(Element parent,
                                            QName q)
Return the first element child with the specified qualified name.

Parameters:
parent -
q -
Returns:

getFirstChildWithName

public static Element getFirstChildWithName(Element parent,
                                            String ns,
                                            String lp)
Return the first element child with the specified qualified name.

Parameters:
parent -
ns -
lp -
Returns:

getChildrenWithName

public static List<Element> getChildrenWithName(Element parent,
                                                String ns,
                                                String localName)
Return child elements with specified name.

Parameters:
parent -
ns -
localName -
Returns:

getChildrenWithNamespace

public static List<Element> getChildrenWithNamespace(Element parent,
                                                     String ns)
Returns all child elements with specified namespace.

Parameters:
parent - the element to search under
ns - the namespace to find elements in
Returns:
all child elements with specified namespace

getChild

public static Node getChild(Node parent,
                            int type)
Get the first child of the specified type.

Parameters:
parent -
type -
Returns:

getNext

public static Node getNext(Node current)
Get the next sibling with the same name and type


getNext

public static Node getNext(Node current,
                           String name,
                           int type)
Return the next sibling with a given name and type


readXml

public static Document readXml(InputStream is)
                        throws SAXException,
                               IOException,
                               ParserConfigurationException
Read XML as DOM.

Throws:
SAXException
IOException
ParserConfigurationException

readXml

public static Document readXml(Reader is)
                        throws SAXException,
                               IOException,
                               ParserConfigurationException
Throws:
SAXException
IOException
ParserConfigurationException

readXml

public static Document readXml(StreamSource is)
                        throws SAXException,
                               IOException,
                               ParserConfigurationException
Throws:
SAXException
IOException
ParserConfigurationException

writeXml

public static void writeXml(Node n,
                            OutputStream os)
                     throws TransformerException
Throws:
TransformerException

createDocumentBuilder

public static DocumentBuilder createDocumentBuilder()

createDocument

public static Document createDocument()

getPrefixRecursive

public static String getPrefixRecursive(Element el,
                                        String ns)

getPrefix

public static String getPrefix(Element el,
                               String ns)

getPrefixesRecursive

public static void getPrefixesRecursive(Element element,
                                        String namespaceUri,
                                        List<String> prefixes)
Get all prefixes defined, up to the root, for a namespace URI.

Parameters:
element -
namespaceUri -
prefixes -

getPrefixes

public static void getPrefixes(Element element,
                               String namespaceUri,
                               List<String> prefixes)
Get all prefixes defined on this element for the specified namespace.

Parameters:
element -
namespaceUri -
prefixes -

createNamespace

public static String createNamespace(Element el,
                                     String ns)

getNamespace

public static String getNamespace(Node node,
                                  String searchPrefix)
Starting from a node, find the namespace declaration for a prefix. for a matching namespace declaration.

Parameters:
node - search up from here to search for namespace definitions
searchPrefix - the prefix we are searching for
Returns:
the namespace if found.

findAllElementsByTagNameNS

public static List<Element> findAllElementsByTagNameNS(Element elem,
                                                       String nameSpaceURI,
                                                       String localName)

findAllElementsByTagName

public static List<Element> findAllElementsByTagName(Element elem,
                                                     String tagName)

hasElementInNS

public static boolean hasElementInNS(Element el,
                                     String namespace)

setNamespace

public static String setNamespace(Element element,
                                  String namespace,
                                  String prefix)
Set a namespace/prefix on an element if it is not set already. First off, it searches for the element for the prefix associated with the specified namespace. If the prefix isn't null, then this is returned. Otherwise, it creates a new attribute using the namespace/prefix passed as parameters.

Parameters:
element -
namespace -
prefix -
Returns:
the prefix associated with the set namespace

addNamespacePrefix

public static void addNamespacePrefix(Element element,
                                      String namespaceUri,
                                      String prefix)
Add a namespace prefix definition to an element.

Parameters:
element -
namespaceUri -
prefix -

Apache CXF API

Apache CXF