📜  XPath相对路径(1)

📅  最后修改于: 2023-12-03 15:21:19.372000             🧑  作者: Mango

XPath相对路径

XPath是一种用于在XML文档中定位节点的语言。它可以用绝对路径或相对路径来定位节点。

XPath相对路径是相对于当前节点的路径,可以使用多种轴(axis),以及各种表达式和操作符来定位节点。

语法

XPath相对路径的语法格式如下:

./relative-path

其中,“.”表示当前节点,而“relative-path”则是相对路径。

例如,如果你想选取当前节点下的所有子节点,可以使用“*”通配符:

./ *

如果你想选取当前节点的所有父节点,可以使用“..”:

../
轴(Axis)

XPath相对路径可以使用各种轴来定位节点。轴是指节点与其祖先、后代、兄弟、前后文之间的关系。

以下是XPath定义的七种轴:

  • ancestor:选取当前节点的所有祖先节点。
  • ancestor-or-self:选取当前节点的所有祖先节点以及当前节点本身。
  • attribute:选取当前节点的所有属性。
  • child:选取当前节点的所有子节点。
  • descendant:选取当前节点的所有后代节点。
  • descendant-or-self:选取当前节点的所有后代节点以及当前节点本身。
  • following:选取文档中当前节点的结束标签之后的所有节点。
  • following-sibling:选取当前节点之后的所有兄弟节点。

以下是选取当前节点下的所有子节点的示例:

./child:: *
轴的缩写

上述语句中的“child::”可以省略,如下:

./ *
轴的语法

可以用两种方式来指定轴:

  • 使用“axis::node-type”语法。
  • 直接使用轴名称,如“child::”。

具体示例:

./child:: *
./@attribute-name
节点测试

在XPath相对路径中,可以使用谓词对节点进行测试。

谓词是指在表达式内使用方括号(“[“和“]”)的逻辑表达式。

谓词通常被用来选取具有指定属性或值的节点。

以下是选取所有具有class属性的div元素的示例:

./div[@class]

以下是选取所有class属性为“example”的div元素的示例:

./div[@class='example']
例子

以下是一个简单示例,选取了一个XML文档中所有class属性为“example”的div元素中的文字:

./div[@class='example']/text()