XPath选择节点的值是否等于特定文本

时间:2017-12-19 11:54:21

标签: c# xpath

我有一个OIOXML,其中包含AllowanceCharge,我需要弄清楚,如果我必须添加或减去金额。 这取决于ID,我是否需要加或减,因为我需要文本rabat才能减去。

一些OIOXML的例子

<Invoice>
  ...
  <com:AllowanceCharge>
    <com:ID>Gebyr</com:ID>
    <com:ChargeIndicator>true</com:ChargeIndicator>
    <com:MultiplierReasonCode>Leveringstillæg</com:MultiplierReasonCode>
    <com:MultiplierFactorQuantity unitCode="stk" unitCodeListAgencyID="n/a">0.00</com:MultiplierFactorQuantity>
    <com:AllowanceChargeAmount currencyID="DKK">29.00</com:AllowanceChargeAmount>
  </com:AllowanceCharge>
  ...
</Invoice>

我已经创建了对OIOXML的支持,它使用truefalse发送,所以我想知道,如果我可以选择truefalse

XPath的开头看起来像

/*/com:AllowanceCharge/com:ID[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'rabat']

但是,如果文本为true,则可以选择值rabat,否则false为文本

1 个答案:

答案 0 :(得分:0)

使用布尔函数包装XPath,如下所示:

boolean(/*/com:AllowanceCharge/com:ID[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'rabat'])

使用上面的一个XPathEvaluate()。希望这会有所帮助...