net.sf.saxon.om
public final class Navigator extends Object
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. |
abstract 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, NamePool namePool, int whichNamespaces, boolean copyAnnotations, 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 | 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 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 method |
Parameters: value The positive integer key value (negative values are treated as zero).
Returns: the alphabetic key value
Parameters: node the node whose unique identifier is reuqired sb a buffer to which the unique identifier will be appended addDocNr true if a unique document number is to be included in the information
Parameters: first The first node second The second node, whose position is to be compared with the first node
Returns: -1 if this node precedes the other node, +1 if it follows the other node, or 0 if they are the same node. (In this case, isSameNode() will always return true, and the two nodes will produce the same result for generateId())
Parameters: node The node to be copied out The receiver to which events will be sent namePool Namepool holding the name codes (used only to resolve namespace codes) whichNamespaces Indicates which namespace nodes for an element should be copied. Values are NO_NAMESPACES, LOCAL_NAMESPACES, ALL_NAMESPACES copyAnnotations Indicates whether type annotations should be copied locationId The location of the instruction invoking the copy
Throws: XPathException on any failure reported by the Receiver
Parameters: node the singleton node, or null if the node does not exist nodeTest the test to be applied
Returns: an iterator over the node if it exists and matches the test.
Parameters: element the element on which the required attribute appears uri The namespace URI of the attribute name. The null URI is represented as an empty string. localName The local part of the attribute name.
Returns: the attribute value, or null if the attribute is not present
Since: 9.0
Parameters: node the node whose base URI is required
Returns: the base URI of the node
Since: 8.7
Parameters: 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 nodes node The node being numbered count 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 transformation hasVariablesInPatterns 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
Returns: one plus the number of nodes that precede the current node, that match the count pattern, and that follow the first node that matches the from pattern if specified.
Throws: net.sf.saxon.trans.XPathException
Parameters: node The node to be numbered count 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
Returns: a vector containing for each ancestor-or-self that matches the count pattern and that is below the nearest node that matches the from pattern, an Integer which is one greater than the number of previous siblings that match the count pattern.
Throws: XPathException
Parameters: node The node whose number is required context Used for remembering previous result, for performance. May be null.
Returns: the node number, as defined above
Throws: XPathException if any error occurs
Parameters: node the current node, the one whose node number is required count 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)
Returns: the node number established as follows: go to the nearest ancestor-or-self that matches the 'count' pattern and that is a descendant of the nearest ancestor that matches the 'from' pattern. Return one plus the nunber of preceding siblings of that ancestor that match the 'count' pattern. If there is no such ancestor, return 0.
Throws: XPathException when any error occurs in processing
Parameters: 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.
Returns: a path expression that can be used to retrieve the node
Parameters: 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
Returns: a path expression that can be used to retrieve the node
Parameters: a the putative ancestor-or-self node d the putative descendant node
Returns: true if a is an ancestor-or-self of d
Parameters: pool the NamePool. The relevant NamePool can be obtained by calling the method NodeInfo. nodeKind The kind of node required, for example ELEMENT or ATTRIBUTE. To select nodes of any kind, use 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.
Returns: a NodeTest that matches the requested nodes
Since: 9.0