public class XPathContext
extends java.lang.Object
implements java.lang.Cloneable
Modifier and Type | Class and Description |
---|---|
static class |
XPathContext.DOMNodeInfo
DOM based implementation of
XPathContext.NodeInfo . |
private static class |
XPathContext.Level |
static interface |
XPathContext.NodeInfo
Representation of a node used by
XPathContext . |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ATTR |
private static java.lang.String |
CLOSE |
private static java.lang.String |
COMMENT |
private static java.lang.String |
EMPTY |
private static java.lang.String |
OPEN |
private java.util.Deque<XPathContext.Level> |
path |
private static java.lang.String |
PI |
private static java.lang.String |
SEP |
private static java.lang.String |
TEXT |
private java.util.Map<java.lang.String,java.lang.String> |
uri2Prefix |
Constructor and Description |
---|
XPathContext()
Starts with an empty context.
|
XPathContext(java.util.Map<java.lang.String,java.lang.String> prefix2uri)
Starts with an empty context and a given namespace mapping.
|
XPathContext(java.util.Map<java.lang.String,java.lang.String> prefix2uri,
org.w3c.dom.Node root)
Starts with the context of an optional root node and an
optional namespace mapping.
|
XPathContext(org.w3c.dom.Node root)
Starts with the context of a root node.
|
Modifier and Type | Method and Description |
---|---|
private static int |
add1OrIncrement(java.lang.String name,
java.util.Map<java.lang.String,java.lang.Integer> map)
Increments the value name maps to or adds 1 as value if name
isn't present inside the map.
|
void |
addAttribute(javax.xml.namespace.QName attribute)
Adds knowledge about a single attribute of the current node.
|
void |
addAttributes(java.lang.Iterable<? extends javax.xml.namespace.QName> attributes)
Adds knowledge about the current node's attributes.
|
void |
appendChildren(java.lang.Iterable<? extends XPathContext.NodeInfo> children)
Adds knowledge about the current node's children appending to
the knowledge already present.
|
XPathContext |
clone()
Creates a deep copy of this XPathContext.
|
private java.lang.String |
getName(javax.xml.namespace.QName name) |
java.lang.String |
getParentXPath()
Stringifies the XPath of the current node's parent.
|
java.lang.String |
getXPath()
Stringifies the XPath of the current node.
|
private java.lang.String |
getXPath(java.util.Iterator<XPathContext.Level> dIterator) |
private static java.util.Map<java.lang.String,java.lang.String> |
invert(java.util.Map<java.lang.String,java.lang.String> m) |
void |
navigateToAttribute(javax.xml.namespace.QName attribute)
Moves from the current node to the given attribute.
|
void |
navigateToChild(int index)
Moves from the current node to the given child node.
|
void |
navigateToParent()
Moves back to the parent.
|
void |
setChildren(java.lang.Iterable<? extends XPathContext.NodeInfo> children)
Adds knowledge about the current node's children replacing
existing knowledge.
|
private java.util.Deque<XPathContext.Level> path
private final java.util.Map<java.lang.String,java.lang.String> uri2Prefix
private static final java.lang.String COMMENT
private static final java.lang.String PI
private static final java.lang.String TEXT
private static final java.lang.String OPEN
private static final java.lang.String CLOSE
private static final java.lang.String SEP
private static final java.lang.String ATTR
private static final java.lang.String EMPTY
public XPathContext()
public XPathContext(org.w3c.dom.Node root)
public XPathContext(java.util.Map<java.lang.String,java.lang.String> prefix2uri)
prefix2uri
- maps from prefix to namespace URI.public XPathContext(java.util.Map<java.lang.String,java.lang.String> prefix2uri, org.w3c.dom.Node root)
prefix2uri
- maps from prefix to namespace URI.root
- optional root node that determines the initial XPathpublic void navigateToChild(int index)
public void navigateToAttribute(javax.xml.namespace.QName attribute)
public void navigateToParent()
public void addAttributes(java.lang.Iterable<? extends javax.xml.namespace.QName> attributes)
public void addAttribute(javax.xml.namespace.QName attribute)
public void setChildren(java.lang.Iterable<? extends XPathContext.NodeInfo> children)
public void appendChildren(java.lang.Iterable<? extends XPathContext.NodeInfo> children)
public java.lang.String getXPath()
public java.lang.String getParentXPath()
public XPathContext clone()
clone
in class java.lang.Object
private java.lang.String getXPath(java.util.Iterator<XPathContext.Level> dIterator)
private java.lang.String getName(javax.xml.namespace.QName name)
private static int add1OrIncrement(java.lang.String name, java.util.Map<java.lang.String,java.lang.Integer> map)
private static java.util.Map<java.lang.String,java.lang.String> invert(java.util.Map<java.lang.String,java.lang.String> m)