XPath轴(Axes)
轴的意思是相对于当前结点的节点集
轴名称 | 结果 |
---|---|
ancestor | 选取当前结点的所有先辈(父、祖父等) |
ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 |
attribute | 选取当前节点的所有属性。@id等价于attribute::id |
child | 选取当前节点的所有子元素,title等价于child:title |
descendant | 选取当前节点的所有后代元素(子、孙等) |
descendant-or-self | 选取当前节点的所有后代运算(子、孙等)以及当前节点本身 |
following | 选取文档中当前节点的结束标签之后的所有结点 |
namespace | 选取当前节点的所有命名空间节点 |
parent | 选取当前节点的父节点 |
preceding | 选取当前节点的父节点 |
preceding-sibling | 选取当前节点之前的所有同级节点 |
self | 选取当前节点。等驾驭self::node() |
例:
例子 | 含义 |
---|---|
parent::div | 上层父节点,你那叫div的亲生爸爸,最多有一个; |
child::div | 下层所有子节点,你的所有亲儿子中叫div的; |
ancestor::div | 上面所有直系节点,是你亲生爸爸或者你亲爹或者你亲爹的爸爸中叫div的; |
descendant::div | 下面所有节点,你的后代中叫div的,不包括你弟弟的后代; |
following::div | 自你以下页面中所有节点叫div的; |
following-sibling::div | 同层下节点,你所有的亲弟弟中叫div的; |
preceding::div | 同层上节点,你所有的亲哥哥以及他们的后代中叫div的; |
preceding-sibling::div | 同层上节点,你所有的亲哥哥中叫div的; |
步Step
步的语法轴名称:节点测试[谓语]
例子 | 结果 |
---|---|
child::book | 选取所有属于当前节点的只元素的book节点 |
attribute::lang | 选取当前节点的lang属性 |
child::* |
选取当前节点的所有只元素 |
attribute::* |
选取当前节点的所有属性 |
child::text() | 选取当前节点的所有文本子节点 |
child::node() | 选取当前节点的所有子节点 |
descendant::book | 选取当前节点的所有book后代 |
ancestor:book | 选择当前节点的所有book先辈 |
ancestor-or-self::book | 选取当前节点的所有book先辈以及当前节点(如果此节点是book节点) |
child::*/child::price |
选取当前节点的所有price孙节点 |
示例
//a/parent::h3
//div[@price<100]/child::div
//div[@price<100]/descendant::h2
//a/ancestor::div
//div[@id="testid"][2]/following::div
//div[@id="testid"][2]/following::li
//div[@id="testid"][2]/following-sibling::div[@id="go"]
//div[@id="testid"]/preceding::ul
//div[@id="testid"][2]/preceding-sibling::div
//a/attribute::href
//h3/child::*
选取当前节点的所有只元素