常用的路径表达式
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置 |
. | 选取当前节点 |
… | 选取当前节点的父节点 |
@属性名 | 选取属性 |
| | 选取若干路径 |
当前节点的相关节点
-
child:选取当前节点的所有子元素
child子节点定位://div[@id="testid"]/child::ul/li/text()
当前节点的所有子元素//div[@id="testid"]/child::*
定位某节点下为ol的子节点下的所有节点//div[@id="testid"]/child::ol/child::*/text()
-
attribute选取当前节点的所有属性
attribute定位id属性值//div/attribute::id
定位当前节点的所有属性://div[@id="testid"]/attribute::*')
-
ancestor:父辈元素
ancestor-or-self:父辈元素及当前元素
//div[@id="testid"]/ancestor::div/@price')
定位父辈div元素的price属性//div[@id="testid"]/ancestor::div
所有父辈div元素//div[@id="testid"]/ancestor-or-self::div
所有父辈元素以及当前节点div元素 -
descendant:后代
descendant:后代及当前节点本身
使用和ancestor一样
-
following:选取文档中当前节点的结束标签之后的所有节点
//div[@id="testid"]/following::div[not(@id)]/.//li[1]/text()
定位testid之后不包含id属性的div标签下所有的li中的第一个li的text属性 -
namespace:选取当前节点的所有命名空间节点
//div[@id="testid"]/namespace::*
选取命名空间节点 -
parent:选取当前节点的父节点
//li[@data=&