Выбор только отдельных значений с использованием XPath 1.0 - PullRequest
0 голосов
/ 26 сентября 2018

Как бы вернуть только уникальное City значение, где Name из state = 'Washington' с использованием 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-Different-values-Within-specific-attribute

1 Ответ

0 голосов
/ 26 сентября 2018

Этот XPath,

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

выберет уникальные City элементы в State элементах с Name = 'Washington':

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

в соответствии с запросом.

...