public final class Navigator extends Object
| Modifier and Type | Class and Description |
|---|---|
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.
|
| Modifier and Type | Method and Description |
|---|---|
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 int |
comparePosition(NodeInfo first,
NodeInfo 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 AbsolutePath |
getAbsolutePath(NodeInfo node)
Get the absolute path to a node
|
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 |
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 documentpublic static NodeTest makeNodeTest(NamePool pool, int nodeKind, String uri, String localName)
NodeInfo.iterateAxis(byte) methodpool - 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 requiredpublic 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 knownpublic static AbsolutePath getAbsolutePath(NodeInfo node)
node - the node in questionpublic 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 matchesXPathException - 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 transformationXPathException - 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 CopyOptionslocationId - The location of the instruction invoking the copyXPathException - 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 nodepublic static int comparePosition(NodeInfo first, NodeInfo second)
first - The first nodesecond - The second node, whose position is to be compared with the first nodeAxisInfo.PRECEDING if this node is on the preceding axis of the other node;
AxisInfo.FOLLOWING if it is on the following axis; AxisInfo.ANCESTOR if the first node is an
ancestor of the second; AxisInfo.DESCENDANT if the first is a descendant of the second;
AxisInfo.SELF if they are the same node.UnsupportedOperationException - if either node is an attribute or namespacepublic 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 nodepublic static AxisIterator filteredSingleton(NodeInfo node, NodeTest nodeTest)
node - the singleton node, or null if the node does not existnodeTest - the test to be appliedCopyright (c) 2004-2013 Saxonica Limited. All rights reserved.