Столкнувшись с проблемой Xpath, если тогда еще концепция - PullRequest
0 голосов
/ 27 июня 2011

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 ')тогда 'C' else '' 'имеет недопустимый токен.

Есть ли другой способ достижения результата?Любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 июня 2011

Полагаю, вы используете .NET Framework. пока не поддерживает все функции XPath 2.0 . В вашем конкретном примере нет проблем, поскольку вы можете выполнять логику в своем коде.

Если это не соответствует вашим потребностям, вы можете использовать для этого либо XSLT (хотя это слишком сложно для более простых нужд).

Другим способом является использование сторонних библиотек, которые поддерживают XPath 2.0 или XQuery , например SAXON или XQSharp .

...