# Class: com.pnfsoftware.jeb.util.encoding.xml.XNode

Implementation of the `Node` API used by [XmlParser](XmlParser).

## Constructor: XNode

Description: Create an XML node base object.

## Method: appendChild
- parameter: `newChild`, type: `org.w3c.dom.Node`
- return type: `org.w3c.dom.Node`


## Method: cloneNode
- parameter: `deep`, type: `boolean`
- return type: `org.w3c.dom.Node`


## Method: compareDocumentPosition
- parameter: `other`, type: `org.w3c.dom.Node`
- return type: `short`


## Method: getAttributes
- return type: `org.w3c.dom.NamedNodeMap`


## Method: getBaseURI
- return type: `java.lang.String`


## Method: getChildNodes
- return type: `org.w3c.dom.NodeList`


## Method: getFeature
- parameter: `feature`, type: `java.lang.String`
- parameter: `version`, type: `java.lang.String`
- return type: `java.lang.Object`


## Method: getFirstChild
- return type: `org.w3c.dom.Node`


## Method: getLastChild
- return type: `org.w3c.dom.Node`


## Method: getLocalName
- return type: `java.lang.String`


## Method: getNamespaceURI
- return type: `java.lang.String`


## Method: getNextSibling
- return type: `org.w3c.dom.Node`


## Method: getOwnerDocument
- return type: `org.w3c.dom.Document`


## Method: getParentNode
- return type: `org.w3c.dom.Node`


## Method: getPrefix
- return type: `java.lang.String`


## Method: getPreviousSibling
- return type: `org.w3c.dom.Node`


## Method: getTextContent
- return type: `java.lang.String`


## Method: getUserData
- parameter: `key`, type: `java.lang.String`
- return type: `java.lang.Object`


## Method: hasAttributes
- return type: `boolean`


## Method: hasChildNodes
- return type: `boolean`


## Method: initChildren
- parameter: `nodes`, type: `java.util.List<com.pnfsoftware.jeb.util.encoding.xml.XNode>`

Description: Assign the parsed children for this node.
parameter: nodes: child nodes

## Method: insertBefore
- parameter: `newChild`, type: `org.w3c.dom.Node`
- parameter: `refChild`, type: `org.w3c.dom.Node`
- return type: `org.w3c.dom.Node`


## Method: isDefaultNamespace
- parameter: `namespaceURI`, type: `java.lang.String`
- return type: `boolean`


## Method: isEqualNode
- parameter: `arg`, type: `org.w3c.dom.Node`
- return type: `boolean`


## Method: isSameNode
- parameter: `other`, type: `org.w3c.dom.Node`
- return type: `boolean`


## Method: isSupported
- parameter: `feature`, type: `java.lang.String`
- parameter: `version`, type: `java.lang.String`
- return type: `boolean`


## Method: lookupNamespaceURI
- parameter: `prefix`, type: `java.lang.String`
- return type: `java.lang.String`


## Method: lookupPrefix
- parameter: `namespaceURI`, type: `java.lang.String`
- return type: `java.lang.String`


## Method: normalize


## Method: ofType
- parameter: `candidates`, type: `int[]`
- return type: `boolean`

Description: Determine whether this node has one of the provided DOM node types.
parameter: candidates: DOM node type constants
return: true if this node's type matches one of the candidates

## Method: removeChild
- parameter: `oldChild`, type: `org.w3c.dom.Node`
- return type: `org.w3c.dom.Node`


## Method: replaceChild
- parameter: `newChild`, type: `org.w3c.dom.Node`
- parameter: `oldChild`, type: `org.w3c.dom.Node`
- return type: `org.w3c.dom.Node`


## Method: setNodeValue
- parameter: `nodeValue`, type: `java.lang.String`


## Method: setPrefix
- parameter: `prefix`, type: `java.lang.String`


## Method: setTextContent
- parameter: `textContent`, type: `java.lang.String`


## Method: setUserData
- parameter: `key`, type: `java.lang.String`
- parameter: `data`, type: `java.lang.Object`
- parameter: `handler`, type: `org.w3c.dom.UserDataHandler`
- return type: `java.lang.Object`


## Static Method: findNodeByName
- parameter: `nodes`, type: `java.util.Collection<? extends com.pnfsoftware.jeb.util.encoding.xml.XNode>`
- parameter: `wantedName`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.util.encoding.xml.XNode`

Description: Find the first node with the requested DOM node name.
parameter: nodes: nodes to inspect
parameter: wantedName: node name to find
return: first matching node, or null

## Static Method: getDescendantElementsByTagName
- parameter: `startNode`, type: `com.pnfsoftware.jeb.util.encoding.xml.XNode`
- parameter: `name`, type: `java.lang.String`
- return type: `org.w3c.dom.NodeList`

Description: Collect descendant element nodes with the requested tag name.
parameter: startNode: node whose descendants are searched
parameter: name: tag name to match, or `*` for all elements
return: matching descendants as a node list

