Package org.apache.cxf.helpers
Class DOMUtils
- java.lang.Object
-
- 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DOMUtils.NullResolver
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addNamespacePrefix(Element element, String namespaceUri, String prefix)
Add a namespace prefix definition to an element.static Set<QName>
convertStringsToQNames(List<String> expandedQNames)
static QName
convertStringToQName(String expandedQName)
static QName
convertStringToQName(String expandedQName, String prefix)
static Document
createDocument()
static String
createNamespace(Element el, String ns)
static QName
createQName(String qualifiedName, Node node)
Creates a QName object based on the qualified name and using the Node as a base to lookup the namespace for the prefixstatic List<Element>
findAllElementsByTagName(Element elem, String tagName)
static List<Element>
findAllElementsByTagNameNS(Element elem, String nameSpaceURI, String localName)
static Element
findChildWithAtt(Node parent, String elemName, String attName, String attVal)
Find the first direct child with a given attribute.static String
getAllContent(Node n)
Get the text content of a node and all it's children or null if there is no textstatic 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 textstatic DocumentFragment
getDomDocumentFragment(DocumentFragment fragment)
Try to get the DOM DocumentFragment from the SAAJ DocumentFragment with JAVA9 afterwardsstatic Node
getDomElement(Node node)
Try to get the DOM Node from the SAAJ Node with JAVA9 afterwardsstatic QName
getElementQName(Element el)
static Document
getEmptyDocument()
Returns a static Document that should always be "empty".static Element
getFirstChildWithName(Element parent, String ns, String lp)
Return the first element child with the specified qualified name.static Element
getFirstChildWithName(Element parent, QName q)
Return the first element child with the specified qualified name.static Element
getFirstElement(Node parent)
Get the first direct child with a given typestatic String
getNamespace(Node node, String searchPrefix)
Starting from a node, find the namespace declaration for a prefix. for a matching namespace declaration.static Node
getNext(Node current)
Get the next sibling with the same name and typestatic Node
getNext(Node current, String name, int type)
Return the next sibling with a given name and typestatic 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 textstatic boolean
hasAttribute(Element element, String value)
static boolean
hasElementInNS(Element el, String namespace)
static boolean
hasElementWithName(Element el, String nameSpaceURI, String localName)
static boolean
isJava9SAAJ()
static Document
newDocument()
Creates a new Document objectstatic 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
-
-
-
Method Detail
-
newDocument
public static Document newDocument()
Creates a new Document object- Throws:
ParserConfigurationException
-
createDocument
public static Document createDocument()
-
getEmptyDocument
public static Document getEmptyDocument()
Returns a static Document that should always be "empty". It's useful as a factory for for creating Elements and other nodes that will be traversed later and don't need to be attached into a document- Returns:
- an empty document
-
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
-
-
getAllContent
public static String getAllContent(Node n)
Get the text content of a node and all it's children or null if there is no text
-
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 childsname
- name of the element. If null return the first element.
-
findChildWithAtt
public static Element 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 anyattName
- attribute we're looking forattVal
- 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 ).
-
createQName
public static QName createQName(String qualifiedName, Node node)
Creates a QName object based on the qualified name and using the Node as a base to lookup the namespace for the prefix- Parameters:
qualifiedName
-node
-
-
convertStringsToQNames
public static Set<QName> convertStringsToQNames(List<String> expandedQNames)
-
getFirstElement
public static Element getFirstElement(Node parent)
Get the first direct child with a given type
-
getFirstChildWithName
public static Element getFirstChildWithName(Element parent, QName q)
Return the first element child with the specified qualified name.- Parameters:
parent
-q
-
-
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
-
-
getChildrenWithName
public static List<Element> getChildrenWithName(Element parent, String ns, String localName)
Return child elements with specified name.- Parameters:
parent
-ns
-localName
-
-
getChildrenWithNamespace
public static List<Element> getChildrenWithNamespace(Element parent, String ns)
Returns all child elements with specified namespace.- Parameters:
parent
- the element to search underns
- 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
-
-
getNext
public static Node getNext(Node current, String name, int type)
Return the next sibling with a given name and type
-
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
-
-
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 definitionssearchPrefix
- the prefix we are searching for- Returns:
- the namespace if found.
-
findAllElementsByTagNameNS
public static List<Element> findAllElementsByTagNameNS(Element elem, String nameSpaceURI, String localName)
-
getDomElement
public static Node getDomElement(Node node)
Try to get the DOM Node from the SAAJ Node with JAVA9 afterwards- Parameters:
node
- The original node we need check- Returns:
- The DOM node
-
getDomDocumentFragment
public static DocumentFragment getDomDocumentFragment(DocumentFragment fragment)
Try to get the DOM DocumentFragment from the SAAJ DocumentFragment with JAVA9 afterwards- Parameters:
fragment
- The original documentFragment we need to check- Returns:
- The DOM DocumentFragment
-
findAllElementsByTagName
public static List<Element> findAllElementsByTagName(Element elem, String tagName)
-
hasElementWithName
public static boolean hasElementWithName(Element el, String nameSpaceURI, String localName)
-
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
-
-
isJava9SAAJ
public static boolean isJava9SAAJ()
-
-