【问题标题】:How can I use XPath to get the previous sibling of the parent of the current node?如何使用 XPath 获取当前节点父节点的上一个兄弟节点?
【发布时间】:2016-11-21 01:46:00
【问题描述】:

我的 HTML 结构类型是这样的

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

node 作为uls 之一的上下文中,我想获得最近的aname,这意味着父母的name (li's `) 前一个兄弟,相当于

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

除了

  • 我想用 XPath 语法来做
  • 上述查询由于某种原因返回了一个节点,其内容是ali 之间的制表符和换行符。

【问题讨论】:

  • 到目前为止您尝试过哪些 XPath?
  • 我目前有parent::node()/preceding-sibling::a/@name 工作。如果它对您有用,我可以将其作为您可以接受的答案,以便它也可以帮助其他人。

标签: c# html .net xml xpath


【解决方案1】:

wing 的评论部分正确。使用

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

它将在ul 之前为您提供第一个 a(而不是所有这些)。它不会检查它是否也是第一个元素。如果这是一个要求,请使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多