📜  我们如何使用 xpath 移动到父元素? (1)

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

如何使用 XPath 移动到父元素

在 XML 或 HTML 文档中使用 XPath 时,移动到父元素也是相对常见的操作,这个操作可以使用 XPath 表达式中的 .. 来实现。

下面是一个示例 XML 文档:

<bookstore>
  <book>
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
    <price>29.99</price>
  </book>
  <book>
    <title>The Hobbit</title>
    <author>J.R.R. Tolkien</author>
    <price>19.99</price>
  </book>
</bookstore>

如果我们想要获取 <title> 元素的父元素 <book>,我们可以使用以下 XPath 表达式:

//title/..

上面的表达式中,//title 选择了所有 <title> 元素,然后 /.. 移动到了它们的父元素。这个表达式将返回两个 <book> 元素。

如果我们想要获取 <book> 元素的父元素 <bookstore>,我们可以使用以下 XPath 表达式:

//book/..

上面的表达式中,//book 选择了所有 <book> 元素,然后 /.. 移动到了它们的父元素 <bookstore>。这个表达式将返回只有一个 <bookstore> 元素。

需要注意的是,在 XPath 表达式中,.. 必须放在选择器的末尾,表示要向上移动一层。如果你需要向上移动多层,可以使用多个 ..,例如:

//title/../../..

上面的表达式移动了两层,返回了整个 XML 文档的根元素。

最后,XPath 还提供了另一种方式来选择父元素,使用 parent:: 轴。例如,我们可以使用以下 XPath 表达式来获取 <title> 元素的父元素 <book>

//title/parent::book

这个表达式选择了所有 <title> 元素,并通过 parent::book 选择了它们的父元素 <book>

以上就是 XPath 移动到父元素的操作介绍。