要根据子元素的组合进行匹配的XPath查询

时间:2009-11-26 04:05:18

标签: xpath matching

我有以下Xml结构;付款/行在其元素中包含IsFeePayment和类型为bool的IsServiceProduct元素。

<Payment>
   <Line>
      <IsFeePayment>true</IsFeePayment>
       <ISServiceProduct>true</IsServiceProduct>    
   </Line>
 </Payment>

我想要一个xpath语句,当它们都是true时返回'true'。 如果其中任何一个为假,我希望xpath语句返回'false'

下面的xpath几乎就在那里,当两者都为真时它返回该行。

/ [本地名称()= '付款'] / [本地名称()= '行'] [* [本地名称()= 'IsFeePayment'] [文本( )='true']和* [local-name()='IsServiceProduct'] [text()='true']]

我如何得到一个简单的bool而不是整个元素?

2 个答案:

答案 0 :(得分:1)

您可以将xpath简化为

boolean(//Payment/Line[IsFeePayment='true' and IsServiceProduct='true'])

答案 1 :(得分:0)

简单地在xpath表达式周围添加一个boolean()我已经修复了问题 blush

所以......

布尔型(/ [本地名称()= '付款'] / [本地名称()= '行'] [* [本地名称()= 'IsFeePayment'] [ text()='true']和* [local-name()='IsServiceProduct'] [text()='true']])