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

时间:2016-11-20 16:02:35

标签: c# html .net xml xpath

我所拥有的HTML结构类型就像

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

并且node作为ul之一的上下文,我希望得到最近name的{​​{1}},这意味着a父母的(name's`)之前的兄弟姐妹,相当于

li

除了

  • 我想用XPath语法
  • 来做
  • 上述查询由于某种原因返回了一个节点,其内容为选项卡和node.ParentNode.PreviousSibling.GetAttributeValue("name", null) a之间的换行符。

1 个答案:

答案 0 :(得分:1)

来自翼的评论部分正确。使用

In [225]: to_range_group(a)
((0,2,4),(8,12,16,20),(21),(30,33,36))

它会在parent::ul/preceding-sibling::a[1]/@name 之前找到第一个 a(而不是所有这些)。它不会检查它是否也是第一个元素。如果这是一项要求,请使用

ul