|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.tree.util.Navigator
public final class Navigator
The Navigator class provides helper classes for navigating a tree, irrespective of its implementation
Nested Class Summary | |
---|---|
static class |
Navigator.AncestorEnumeration
General-purpose implementation of the ancestor and ancestor-or-self axes |
static class |
Navigator.AxisFilter
AxisFilter is an iterator that applies a NodeTest filter to the nodes returned by an underlying AxisIterator. |
static class |
Navigator.BaseEnumeration
BaseEnumeration is an abstract implementation of an AxisIterator, it simplifies the implementation of the underlying AxisIterator by requiring it to provide only two methods: advance(), and getAnother(). |
static class |
Navigator.DescendantEnumeration
General-purpose implementation of the descendant and descendant-or-self axes, in terms of the child axis. |
static class |
Navigator.EmptyTextFilter
EmptyTextFilter is an iterator that applies removes any zero-length text nodes returned by an underlying AxisIterator. |
static class |
Navigator.FollowingEnumeration
General purpose implementation of the following axis, in terms of the ancestor, child, and following-sibling axes |
static class |
Navigator.PrecedingEnumeration
Helper method to iterate over the preceding axis, or Saxon's internal preceding-or-ancestor axis, by making use of the ancestor, descendant, and preceding-sibling axes. |
Method Summary | |
---|---|
static String |
alphaKey(int value)
Construct an alphabetic key from an positive integer; the key collates in the same sequence as the integer |
static void |
appendSequentialKey(SiblingCountingNode node,
FastStringBuffer sb,
boolean addDocNr)
Get a character string that uniquely identifies this node and that collates nodes into document order |
static int |
compareOrder(SiblingCountingNode first,
SiblingCountingNode second)
Generic (model-independent) method to determine the relative position of two node in document order. |
static void |
copy(NodeInfo node,
Receiver out,
int copyOptions,
int locationId)
Generic (model-independent) implementation of deep copy algorithm for nodes. |
static AxisIterator |
filteredSingleton(NodeInfo node,
NodeTest nodeTest)
Create an iterator over a singleton node, if it exists and matches a nodetest; otherwise return an empty iterator |
static String |
getAttributeValue(NodeInfo element,
String uri,
String localName)
Get the string value of an attribute of a given element, given the URI and local part of the attribute name. |
static String |
getBaseURI(NodeInfo node)
Helper method to get the base URI of an element or processing instruction node |
static int |
getNumberAny(Expression inst,
NodeInfo node,
Pattern count,
Pattern from,
XPathContext context,
boolean hasVariablesInPatterns)
Get node number (level="any"). |
static List<Long> |
getNumberMulti(NodeInfo node,
Pattern count,
Pattern from,
XPathContext context)
Get node number (level="multiple"). |
static int |
getNumberSimple(NodeInfo node,
XPathContext context)
Get simple node number. |
static int |
getNumberSingle(NodeInfo node,
Pattern count,
Pattern from,
XPathContext context)
Get node number (level="single"). |
static NodeInfo |
getOutermostElement(DocumentInfo doc)
Helper method to get the outermost element of a document, given the document node |
static String |
getPath(NodeInfo node)
Get an absolute XPath expression that identifies a given node within its document |
static String |
getPath(NodeInfo node,
XPathContext context)
Get an absolute XPath expression that identifies a given node within its document |
static boolean |
isAncestorOrSelf(NodeInfo a,
NodeInfo d)
Test if one node is an ancestor-or-self of another |
static NodeTest |
makeNodeTest(NamePool pool,
int nodeKind,
String uri,
String localName)
Helper method to construct a NodeTest for use with the NodeInfo.iterateAxis(byte) method |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static String getAttributeValue(NodeInfo element, String uri, String localName)
element
- the element on which the required attribute appearsuri
- The namespace URI of the attribute name.
The "no namespace" case is represented as an empty string.localName
- The local part of the attribute name.
public static NodeInfo getOutermostElement(DocumentInfo doc)
doc
- the document node at the root of the document
public static NodeTest makeNodeTest(NamePool pool, int nodeKind, String uri, String localName)
NodeInfo.iterateAxis(byte)
method
pool
- the NamePool. The relevant NamePool can be obtained by calling the method
NodeInfo.getNamePool()
.nodeKind
- The kind of node required, for example Type.ELEMENT
or Type.ATTRIBUTE
.
To select nodes of any kind, use Type.NODE
.uri
- The namespace URI of the nodes to be selected. Supply null to selects nodes from any
namespace or none. Supply "" to select nodes that are not in a namespace.localName
- The local name of the nodes to be selected. Supply null to select nodes irrespective
of their local name.
public static String getBaseURI(NodeInfo node)
node
- the node whose base URI is required
public static String getPath(NodeInfo node)
node
- the node whose path is required. If null is supplied,
an empty string is returned - this fact is used in making a recursive call
for a parentless node.
public static String getPath(NodeInfo node, XPathContext context)
node
- the node whose path is required. If null is supplied,
an empty string is returned - this fact is used in making a recursive call
for a parentless node.context
- the XPath dynamic evaluation context. May be null if no context is known
public static int getNumberSimple(NodeInfo node, XPathContext context)
node
- The node whose number is requiredcontext
- Used for remembering previous result, for
performance. May be null.
public static int getNumberSingle(NodeInfo node, Pattern count, Pattern from, XPathContext context) throws XPathException
node
- the current node, the one whose node number is requiredcount
- Pattern that identifies which nodes should be
counted. Default (null) is the element name if the current node is
an element, or "node()" otherwise.from
- Pattern that specifies where counting starts from.
Default (null) is the root node. (This parameter does not seem
useful but is included for the sake of XSLT conformance.)context
- the dynamic context of the transformation, used if
the patterns reference context values (e.g. variables)
XPathException
- when any error occurs in processingpublic static int getNumberAny(Expression inst, NodeInfo node, Pattern count, Pattern from, XPathContext context, boolean hasVariablesInPatterns) throws XPathException
inst
- Identifies the xsl:number expression; this is relevant
when the function is memoised to support repeated use of the same
instruction to number multiple nodesnode
- The node being numberedcount
- Pattern that identifies which nodes should be
counted. Default (null) is the element name if the current node is
an element, or "node()" otherwise.from
- Pattern that specifies where counting starts from.
Default (null) is the root node. Only nodes at or after the first (most
recent) node that matches the 'from' pattern are counted.context
- The dynamic context for the transformationhasVariablesInPatterns
- if the count or from patterns
contain variables, then it's not safe to get the answer by adding
one to the number of the most recent node that matches
XPathException
- if any dynamic error occurspublic static List<Long> getNumberMulti(NodeInfo node, Pattern count, Pattern from, XPathContext context) throws XPathException
node
- The node to be numberedcount
- Pattern that identifies which nodes (ancestors and
their previous siblings) should be counted. Default (null) is the
element name if the current node is an element, or "node()"
otherwise.from
- Pattern that specifies where counting starts from.
Default (null) is the root node. Only nodes below the first (most
recent) node that matches the 'from' pattern are counted.context
- The dynamic context for the transformation
XPathException
- if an error occurspublic static void copy(NodeInfo node, Receiver out, int copyOptions, int locationId) throws XPathException
node
- The node to be copiedout
- The receiver to which events will be sentcopyOptions
- Options for copying namespaces, type annotations, etc,
as defined in CopyOptions
locationId
- The location of the instruction invoking the copy
XPathException
- on any failure reported by the Receiverpublic static int compareOrder(SiblingCountingNode first, SiblingCountingNode second)
first
- The first nodesecond
- The second node, whose position is to be compared with the first node
public static void appendSequentialKey(SiblingCountingNode node, FastStringBuffer sb, boolean addDocNr)
node
- the node whose unique identifier is reuqiredsb
- a buffer to which the unique identifier will be appendedaddDocNr
- true if a unique document number is to be included in the informationpublic static String alphaKey(int value)
value
- The positive integer key value (negative values are treated as zero).
public static boolean isAncestorOrSelf(NodeInfo a, NodeInfo d)
a
- the putative ancestor-or-self noded
- the putative descendant node
public static AxisIterator filteredSingleton(NodeInfo node, NodeTest nodeTest)
node
- the singleton node, or null if the node does not existnodeTest
- the test to be applied
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |