如何使用XPath获取当前节点的父节点的前一个兄弟节点?

问题描述:

类型HTML结构的我就像是如何使用XPath获取当前节点的父节点的前一个兄弟节点?

. 
. 
<a name="128312"></a> 
<li> 
    <ul class="post"> 
    . 
    . 
    </ul> 
</li> 
<a name="3849"></a> 
<li> 
    <ul class="post"> 
    . 
    . 
. 
. 

,并从node作为ul S的一个背景下,我想最近aname,这意味着父母的nameli“s`)前一个兄弟,的

node.ParentNode.PreviousSibling.GetAttributeValue("name", null) 

等效除了

  • 我想在XPath语法中执行此操作
  • 上述查询由于某种原因正在返回一个节点,其内容为标签,并在ali之间换行。
+0

到目前为止您尝试了哪些XPath? – wing

+0

我目前有'parent :: node()/之前同级::一个/ @名称'工作。如果它适合你,我可以把它作为你可以接受的答案,以便它也可以帮助别人。 – wing

从机翼的评论是部分正确的。使用

parent::ul/preceding-sibling::a[1]/@name 

这将让你的第一a之前的ul(而不是全部)。它不会检查它是否也是第一个元素。如果这是必需条件,请使用

parent::ul/preceding-sibling::*[1][self::a]/@name