org.exolab.adaptx.xpath

Class XPathNode

Implemented Interfaces:
java.io.Serializable

public abstract class XPathNode
extends java.lang.Object
implements java.io.Serializable

Abstract class representing a node in a document tree, on which XPath expressions can be evaluated. This abstract class provides all the services required by XPath, and enables multiple implementations to exist. It does not make use of iterators or traversals, but assumes double-linked lists are used to maintain node lists.

Version:
$Revision: 1.1.1.1 $

Authors:
Keith Visco
Assaf Arkin

See Also:
Serialized Form

Field Summary

static int
ATTRIBUTE
Node is an attribute.
static int
COMMENT
Node is a comment.
static int
ELEMENT
Node is an element.
static int
NAMESPACE
Node is a namespace node.
static int
PI
Node is a processing instruction.
static int
ROOT
Node is a root node.
static int
TEXT
Node is a text node.

Method Summary

String
getAttribute(String uri, String local)
Returns the value of the named attribute, or null if the node has no such attribute.
XPathNode
getFirstAttribute()
Returns the first in a list of attribute nodes, or null if the node has no attributes.
XPathNode
getFirstChild()
Returns the first child node of this node, or null if the node has no children.
XPathNode
getFirstNamespace()
Returns the first in a list of namespace nodes, or null if the node has no namespaces.
String
getLocalName()
Returns the local name of the node.
String
getNamespacePrefix(String uri)
Returns the namespace prefix associated with this namespace URI, as defined in the context of this node.
String
getNamespaceURI()
Returns the namespace URI the node.
String
getNamespaceURI(String prefix)
Returns the namespace URI associated with this namespace prefix, as defined in the context of this node.
XPathNode
getNext()
Returns the next sibling node in document order, or null if this node is the last node.
int
getNodeType()
Returns the type of this node.
XPathNode
getParentNode()
Returns the parent node, or null if the node has no parent.
XPathNode
getPrevious()
Returns the previous sibling node in document order, or null if this node is the first node.
XPathNode
getRootNode()
Returns the root node.
String
getStringValue()
Returns the string value of the node.
boolean
hasChildNodes()
Returns true if this node has any child nodes.

Field Details

ATTRIBUTE

public static final int ATTRIBUTE
Node is an attribute.

Field Value:
2


COMMENT

public static final int COMMENT
Node is a comment.

Field Value:
8


ELEMENT

public static final int ELEMENT
Node is an element.

Field Value:
1


NAMESPACE

public static final int NAMESPACE
Node is a namespace node.

Field Value:
13


PI

public static final int PI
Node is a processing instruction.

Field Value:
7


ROOT

public static final int ROOT
Node is a root node.

Field Value:
9


TEXT

public static final int TEXT
Node is a text node.

Field Value:
3

Method Details

getAttribute

public String getAttribute(String uri,
                           String local)
Returns the value of the named attribute, or null if the node has no such attribute. If the argument uri is null, the node's namespace URI will be used. This method is valid only for the element node.

Parameters:
uri - The attribute's namespace URI, or null
local - The attribute's local name

Returns:
The attribute's value, or null if no such attribute exists


getFirstAttribute

public XPathNode getFirstAttribute()
Returns the first in a list of attribute nodes, or null if the node has no attributes. This method is valid only for the element node.

Returns:
The first in a list of attribute nodes, or null


getFirstChild

public XPathNode getFirstChild()
Returns the first child node of this node, or null if the node has no children. Child nodes are only returned for an element or root node.

Returns:
The first child node of this node, or null


getFirstNamespace

public XPathNode getFirstNamespace()
Returns the first in a list of namespace nodes, or null if the node has no namespaces. This method is valid only for the element node.

Returns:
The first in a list of namespace nodes, or null


getLocalName

public String getLocalName()
Returns the local name of the node. Returns the local name of an element or attribute, the prefix of a namespace node, the target of a processing instruction, or null for all other node types.

Returns:
The local name of the node, or null if the node has no name


getNamespacePrefix

public String getNamespacePrefix(String uri)
Returns the namespace prefix associated with this namespace URI, as defined in the context of this node. Returns null if no prefix is defined for this namespace URI. Returns an empty string if the default prefix is associated with this namespace URI. This method is valid only for element nodes.

Parameters:
uri - The namespace URI

Returns:
The namespace prefix, or null


getNamespaceURI

public String getNamespaceURI()
Returns the namespace URI the node. Returns the namespace URI of an element, attribute or namespace node, or null for all other node types.

Returns:
The namespace URI of the node, or null if the node has no namespace URI


getNamespaceURI

public String getNamespaceURI(String prefix)
Returns the namespace URI associated with this namespace prefix, as defined in the context of this node. Returns null if the prefix is undefined. Returns empty if the prefix is defined and associated with no namespace. This method is valid only for element nodes.

Parameters:
prefix - The namespace prefix

Returns:
The namespace URI, or null


getNext

public XPathNode getNext()
Returns the next sibling node in document order, or null if this node is the last node. This method is value for any node except the root node.

Returns:
The next sibling node in document order, or null


getNodeType

public int getNodeType()
Returns the type of this node.

Returns:
The type of this node


getParentNode

public XPathNode getParentNode()
Returns the parent node, or null if the node has no parent. This method is valid on all node types except the root node. Attribute and namespace nodes have the element as their parent node.

Returns:
The parent node, or null


getPrevious

public XPathNode getPrevious()
Returns the previous sibling node in document order, or null if this node is the first node. This method can is valid for any node except the root node.

Returns:
The previous sibling node in document order, or null


getRootNode

public XPathNode getRootNode()
Returns the root node. Note to implementors: This should NOT return null.

Returns:
The root node


getStringValue

public String getStringValue()
Returns the string value of the node. The string value of a text node or an attribute node is it's text value. The string value of an element or a root node is the concatenation of the string value of all its child nodes. The string value of a namespace node is its namespace URI. The string value of a processing instruction is the instruction, and the string value of a comment is the comment text.

Returns:
The string value of the node


hasChildNodes

public boolean hasChildNodes()
Returns true if this node has any child nodes.

Returns:
True if this node has any child nodes.