【问题标题】:Xpath get distinct nodes using preceding-siblingXpath 使用前同级获取不同的节点
【发布时间】:2013-04-09 03:55:42
【问题描述】:

我需要在没有 distinct-values(//*/name()) 的情况下获取不同的值 //name()

我试过这样做,但效果不佳。

//*/name()[.!=//preceding-sibling::*]

我该如何修复它?

【问题讨论】:

  • 请您提供您的输入示例并更清楚地描述您想要实现的目标吗?
  • distinct-values(//*/name()) 我需要在没有这个函数的情况下得到相同的结果
  • Yuliya,看看this question,看看这个问题有多容易回答。
  • @MattH,我看过那个帖子,但我不知道如何更改我的 xpath(
  • 那是向你展示如何提问。我已要求您提供输入和输出的样本。我还向您指出了一个问得很好的问题的示例。你有一个read of this 然后更新你的问题怎么样?

标签: xpath distinct siblings


【解决方案1】:

使用 XPath 1.0,获取不同的值

对于名称属性,

/*/*[not(@name = preceding::*/@name)]

对于节点名称,

/*/*[not(name() = preceding::*/name())]

我的示例 XML:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <friend1 name="abc"/>
    <friend2 name="def"/>
    <friend3 name="abc"/>
    <friend1 name="abcd"/>
    <friend5 name="abcd"/>
    <friend6 name="xyz"/>
    <friend8 name="789"/>
    <friend0 name="pqr"/>
    <friend9 name="lmn"/>
    <friend2 name="lmn"/>
    <friend5 name="123"/>
    <friend7 name="456"/>
    <friend12 name="789"/>
</root>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多