.net Xpath if-then-else概念面临问题

.net Xpath if-then-else概念面临问题,.net,xml,xpath-2.0,.net,Xml,Xpath 2.0,XML: 但是,我收到以下错误消息: '如果(/additionalFields/field[@name='distribution']/text()='140'),则'C'else''具有无效标记 有没有其他方法可以达到这个结果?任何帮助都将不胜感激 我猜您正在使用.NET框架。它还没有实现所有XPath2.0特性。 在您的特定示例中,没有问题,因为您可以在代码中执行逻辑 如果这不符合您的需要,您可以使用XSLT来实现这一点(尽管对于更简单的需求来说,它太复杂了) 另一种方法是使用支持XPat

XML:

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

'如果(/additionalFields/field[@name='distribution']/text()='140'),则'C'else''具有无效标记


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

我猜您正在使用.NET框架。它还没有实现所有XPath2.0特性。 在您的特定示例中,没有问题,因为您可以在代码中执行逻辑

如果这不符合您的需要,您可以使用XSLT来实现这一点(尽管对于更简单的需求来说,它太复杂了)


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

是的,以上仅在.Net framework中提供。在这里,代码中的逻辑将强制对逻辑进行硬编码。我们需要以客户意愿为驱动力。需要一个简单的if-else,但if&else条件值需要由客户驱动
<additionalFields>
    <field name="dataKey">3868</field>
    <field name="distribution">140</field>
</additionalFields>
String text = nav.Evaluate("if(/additionalFields/field[@name='distribution']/text() = '140') then 'C' else ' ' ").ToString();