【问题标题】:Selecting only distinct values using XPath 1.0使用 XPath 1.0 仅选择不同的值
【发布时间】:2018-09-26 08:16:03
【问题描述】:

如何使用 XPath 1.0 仅返回 唯一 City 值,其中 NameName 使用 XPath 1.0?

<StateDataSet>
    <State>
        <Name>Washington</Name>
        <City>Seattle</City>
        <business>Starbucks</business>
    </State>
    <State>
        <Name>Washington</Name>
        <City>Seattle</City>
        <business>Amazon</business>
    </State>
    <State>
        <Name>Washington</Name>
        <City>Redmond</City>
        <business>Microsoft</business>
    </State>
    <State>
        <Name>Washington</Name>
        <City>Redmond</City>
        <business>Starbucks</business>
    </State>
    <State>
        <Name>Washington</Name>
        <City>Seattle</City>
        <business>Dicks</business>
    </State>
    <State>
        <Name>Alaska</Name>
        <City>Anchorage</City>
        <business>Starbucks</business>
    </State>
    <State>
        <Name>Oregon</Name>
        <City>Portland</City>
        <business>Starbucks</business>
    </State>
    <State>
        <Name>Alaska</Name>
        <City>Gnome</City>
        <business>Starbucks</business>
    </State>
</StateDataSet>

到目前为止,我已经尝试了以下 XPath 查询:

/StateDataSet/State[Name ='Washington' and not (State[Name='Washington'] = following-sibling::State[Name='Washington'])]/City

这返回了华盛顿的城市,但值不是唯一的。我使用xpathtester.com 测试了我的查询

我做错了什么?我的查询基于get-distinct-values-within-specific-attributes

【问题讨论】:

    标签: xml xpath xpath-1.0


    【解决方案1】:

    这个 XPath,

    /StateDataSet/State[Name ='Washington' and 
                        not(City = preceding-sibling::State[Name='Washington']/City)]
                 /City
    

    将在State 元素中选择唯一的City 元素和Name = 'Washington'

    <City>Seattle</City>
    <City>Redmond</City>
    

    根据要求。

    【讨论】:

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