2012-11-28 135 views
0

我想选择具有特定值的子元素的元素。下面是示例XML的:`具有多个子值的XPATH选择节点部分匹配

<events> 
    <event> 
    <startDateTime>2012-12-0128090</startDateTime> 
    <homeTeam> 
     <name>TEST123</name> 
    </homeTeam> 
    </event> 
</events>` 

结果,我要的是事件,包含的startDateTime值为2012年12月1日,并包含homeTeam /名称的测试值。

我想是这样的:

//events/event[startDateTime[contains(.,'2012-12-01')] and homeTeam/name[contains(.,'TEST')]]'); 

这将返回我也starDateTime从指定的不同的事件。

在此先感谢。

+2

您的XPath是正确的。 –

回答

2

我调整你的XML和XPath略有

<events> 
    <event> 
     <startDateTime>2012-12-0128090</startDateTime> 
     <homeTeam> 
      <name>TEST123</name> 
     </homeTeam> 
    </event> 
    <event> 
     <startDateTime>*2013-12-0128090*</startDateTime> 
     <homeTeam> 
      <name>TEST123</name> 
     </homeTeam> 
    </event> 
</events> 

然后我用下面的XPath访问第二个节点:

//events/event[(startDateTime[contains(.,'2013-12-01')]) and (homeTeam/name[contains(.,'TEST')])] 

我也有不同的名称值进行了测试,它似乎工作正常。

相关问题