【问题标题】:Xpath Axes - how to select child node attributeXpath Axes - 如何选择子节点属性
【发布时间】:2012-03-24 10:11:28
【问题描述】:

我有以下 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>

并且想选择在 Name 属性中包含特定短语的 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"))]]

【问题讨论】:

  • 您是指name 属性而不是node 属性吗?
  • 是的,抱歉的意思是名称属性 - 克里斯帕洛特爵士
  • 请注意lower-case() 函数仅在 XPath 2.0 中可用。

标签: xpath axes


【解决方案1】:

好吧,我设法解决了人们!这是解决方案,在这种情况下,我正在寻找短语“Ac”,如您所见

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

还记得

lower-case(

仅在 xpath 2.0 (Dimitre Novatchev) 中可用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2011-01-30
    相关资源
    最近更新 更多