2012-03-06 45 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)

相关问题