Оси Xpath - как выбрать атрибут дочернего узла - PullRequest
1 голос
/ 07 марта 2012

У меня есть следующий XML:

<ArrayOfStationStatus xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  autopagerMatchedRules="1">  
  <StationStatus ID="20" StatusDetails="To the platform due to planned maintenance work.">
     <Station ID="20" Name="Bermondsey"/>
   <Status ID="NS" CssClass="Closed" Description="No Step Free Access" IsActive="true">
     <StatusType ID="2" Description="Station"/>
   </Status>  
</StationStatus>
</ArrayOfStationStatus>

И хотел бы выбрать узлы StationStatus, которые содержат определенную фразу в атрибуте Name. Важно, чтобы я выбрал узлы SationStatus.

Это xpath, который я придумал, но он неверен:

/ArrayOfStationStatus/StationStatus[contains(lower-case(child::Station/@Name),lower-case('phrase'))]

EDIT ::::::::

Я только что решил это! Это код, который мне нужен:

/ArrayOfStationStatus/StationStatus[child::Station[contains(lower-case(attribute::Name),lower-case("Ac"))]]

1 Ответ

0 голосов
/ 12 марта 2012

Ну, мне удалось решить это люди! Вот решение, в данном случае я ищу фразу «Ac», как вы можете видеть

/ArrayOfStationStatus/StationStatus[child::Station[contains(lower-case(attribute::Name),lower-case("Ac"))]]

Также помните

lower-case(

доступно только в xpath 2.0 (Димитр Новатчев)

...