获取 XPath 中的父元素名称

发布于 2025-01-04 11:42:16 字数 110 浏览 0 评论 0原文

我试图弄清楚如何从文本节点的范围中获取父节点的名称。

//text()[name(parent)='p']

如何获取当前节点父节点的名称?

I am trying to figure out how to get the name of the parent from a text node's scope.

//text()[name(parent)='p']

How can you get the name of the current node's parent?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

半﹌身腐败 2025-01-11 11:42:16

如果您尝试测试该名称,那么您几乎已经完成了:

//text()[name(parent::*)='p']

如果您尝试返回该名称:

name(//text()/parent::*)

If you're trying to test the name, you almost had it:

//text()[name(parent::*)='p']

If you're trying to return the name:

name(//text()/parent::*)
孤独难免 2025-01-11 11:42:16

仅供参考,术语点:文本节点不是元素。

无论如何,选择当前节点的父节点的最简洁的方法是 ..

因此,当前节点的父元素的名称(可以是文本节点)是 name( ..)

将其替换为您的 XPath 表达式:

//text()[name(..)='p']

但是一种不太迂回的编写方法是

//p/text()

(假设文档中的 p 元素没有名称空间前缀)。无论哪种方式,您都会选择属于名为 p 的元素子级的所有文本节点。

FYI, point of terminology: a text node is not an element.

Anyway, the most succinct way to select the parent of the current node is ..

So, the name of the parent element of the current node (which could be a text node) is name(..)

Substituting that into your XPath expression:

//text()[name(..)='p']

But a less roundabout way to write that would be

//p/text()

(assuming the p elements in the document have no namespace prefix). Either way, you're selecting all text nodes that are children of elements named p.

请叫√我孤独 2025-01-11 11:42:16
//text/..[@name='p']

只要父节点的 name 属性为 p,这将获取 节点的所有父节点。

//text/..[@name='p']

This will get all parents of <text> nodes as long as the parent has a name attribute of p.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文