2012-03-06 44 views
1

我有下面的XML:XPath軸 - 如何選擇子節點的屬性

<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節點。選擇SationStatus節點非常重要。

這是XPath我想出了,但它不是正確的:

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

編輯::::::::

我剛剛解決了!這是我需要的代碼:

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

你的意思是'name'屬性而不是'node'屬性? – 2012-03-06 21:29:33

+0

對不起意思Name屬性 - Sir Crispalot – 2012-03-06 23:18:31

+0

請注意''lower-case()'函數僅在XPath 2.0中可用。 – 2012-03-07 03:15:19

回答

0

那麼我設法解決它的人!這是解決方案,在這種情況下,我在尋找的那句「交流」,你可以看到

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

還記得

lower-case(

僅在XPath 2.0中提供(Dimitre Novatchev)

相關問題