位置路径
位置路径标识了和上下文有关的一组XPath节点,是XPath表达式的特化,使用'/'表示层级关系。
位置路径有相对路径和绝对路径。
相对路径:
"nodename/childnodename"
该路径在当前节点下查找到符合nodename的节点,再寻找nodename的子节点childnodename。
路径的开始位置是 当前节点 。
绝对路径
"/nodename/childnodename"
在路径字串前加了一个'/',表示字串从根开始表示,也就是nodename必须是表示根节点,才能找到childnodename。
其它路径符号
// 搜索所有位置节点。
"//nodename"
文档树中的所有名为nodename的节点。
"//nodename/childnodename"
文档树中的所有父元素名为nodename的childnodename节点。
. 引用节点自身。
"./nodename/childnodename"
是"nodename/childnodename"的完整写法,作用一致。
".//nodename"
当前节点下的所有nodename节点。
.. 引用节点自身的父节点。
"../nodename"
nodename的父节点。
"../nodename/othernodename"
nodename的父节点的子节点othernodename,选择到的是nodename的兄弟节点。
* 通配符号。
"nodename/*"
表示nodename的任意名称的子节点。
[] 谓词符号,用于筛选元素。比如,list/item[2] 代表第二个 item 元素。实际上 [] 是一个谓词(参见 谓词)。
"nodename[1]"
表示nodename的第一个子节点。
"nodename[@ss=/"1/"]"
表示有属性ss值等于"1"的nodename节点。
谓词中还可以使用其它的boolean表达式。
@ 属性符号,后跟属性名。@* 也可以使用通配符表示所有属性。
"nodename/childnodename[@ss]"
筛选nodename/childnodename,找出拥有属性ss的。
| 分隔符号,分隔多个路径
"nodename/childnodename | nodename/otherchildnodename"
节点nodename的childnodename和otherchildnodename节点。