XPath是一种在XML文档中查找信息的语言,它被用于在XML文档中对元素和属性进行遍历,以下是XPath语法的简要概述:
1. 基本语法:
* 当前节点:`.`
* 根节点:`/`
* 任意位置:`//`
* 当前位置的根节点往下匹配:`/`
* 当前位置往下任意匹配:`//`
* 节点名定位:`nodename`
* 根据节点的属性进行定位:`nodename[@attribute='value']`
* 获取节点的属性值:`@attribute`
* 获取节点的文本:`text()`
2. 属性匹配:
* 单属性多值匹配:当节点的一个属性的多个值时,可以使用`contains()`函数根据其中的一个值进行定位。
* 多属性匹配:使用节点的多个属性共同定位节点,例如:`//div[@name='divtag' and @class='item']`。
3. 按序选择:
* 索引定位:通过指定索引值来选取节点,索引从1开始,`[6]`。
4. 轴(轴表示步进表达式选择的节点和当前上下文节点间的树状关系):
* `child::`:选择子节点。
* `parent::`:选择父节点。
* `following-sibling::`:选择同级节点。
* `preceding-sibling::`:选择同级节点。
* `following::`:选择同级及以下节点。
* `preceding::`:选择同级及以上节点。
5. 谓词(谓词即相当于过滤表达式以进一步过滤细化节点集):
* `[@attribute='value']`:根据属性值过滤节点。
* `[node()='value']`:根据节点值过滤节点。
* `[position()=n]`:根据位置过滤节点,n表示位置索引。
6. 逻辑操作符:
* `and`:逻辑与。
* `or`:逻辑或。
7. 取逻辑非用`not()`函数。