如何使用XPath获取当前节点的父节点的前一个兄弟节点?
问题描述:
类型HTML结构的我就像是如何使用XPath获取当前节点的父节点的前一个兄弟节点?
.
.
<a name="128312"></a>
<li>
<ul class="post">
.
.
</ul>
</li>
<a name="3849"></a>
<li>
<ul class="post">
.
.
.
.
,并从node
作为ul
S的一个背景下,我想最近a
的name
,这意味着父母的name
( li
“s`)前一个兄弟,的
node.ParentNode.PreviousSibling.GetAttributeValue("name", null)
等效除了
- 我想在XPath语法中执行此操作
- 上述查询由于某种原因正在返回一个节点,其内容为标签,并在
a
和li
之间换行。
答
从机翼的评论是部分正确的。使用
parent::ul/preceding-sibling::a[1]/@name
这将让你的第一a
之前的ul
(而不是全部)。它不会检查它是否也是第一个元素。如果这是必需条件,请使用
parent::ul/preceding-sibling::*[1][self::a]/@name
到目前为止您尝试了哪些XPath? – wing
我目前有'parent :: node()/之前同级::一个/ @名称'工作。如果它适合你,我可以把它作为你可以接受的答案,以便它也可以帮助别人。 – wing