Выбор только отдельных значений с использованием XPath 1.0
Как бы я вернул только уникальный 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
Это вернуло город в Вашингтоне, но ценности не уникальны. Я проверил свой запрос с помощью http://www.xpathtester.com/
Что я делаю неправильно? Я основываю свой запрос на атрибутах get-Different-values-Within-Specific
1 ответ
Решение
Этот 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>
как просили.