0

XML:

<additionalFields>
    <field name="dataKey">3868</field>
    <field name="distribution">140</field>
</additionalFields>

我想执行以下 If else Xpath 语句。

String text = nav.Evaluate("if(/additionalFields/field[@name='distribution']/text() = '140') then 'C' else ' ' ").ToString();

但是我收到以下错误消息:

'if(/additionalFields/field[@name='distribution']/text() = '140') then 'C' else ' ' ' 有一个无效的标记。

有没有其他方法可以达到结果?任何帮助,将不胜感激。

4

1 回答 1

0

我猜你正在使用.NET Framework。它还没有实现所有 XPath 2.0 特性。在您的具体示例中,没有问题,因为您可以在代码中执行逻辑。

如果这不能满足您的需要,您可以使用任一 XSLT(尽管对于更简单的需求来说它太复杂了)。

另一种方法是使用支持XPath 2.0XQuery的第三方库,例如SAXONXQSharp

于 2011-06-27T13:34:12.513 回答