在c#中执行xpath表达式时出错

时间:2013-07-12 08:04:14

标签: c# xpath

我有以下代码来执行xpath表达式:

nodeList = xmlDocument.SelectNodes("if(count(//Claims[ClaimNoticeCd='SUBCLAIM']) > 1)
then //Claims[ClaimNoticeCd='SUBCLAIM']   else //Claims[ClaimNoticeCd='CLAIM']");

但它给了我xpath异常,如:

  

if(count(// Claims [ClaimNoticeCd ='SUBCLAIM'])> 1)然后//声明[ClaimNoticeCd ='SUBCLAIM']否//声明[ClaimNoticeCd ='CLAIM']“具有无效令牌

2 个答案:

答案 0 :(得分:1)

在XPath 1.0中没有if / then / else,但你可以使用对立谓词和节点集联合伪造它:

//Claims[count(//Claims[ClaimNoticeCd='SUBCLAIM'])>1][ClaimNoticeCd='SUBCLAIM']
  |
//Claims[count(//Claims[ClaimNoticeCd='SUBCLAIM'])<=1][ClaimNoticeCd='CLAIM']

答案 1 :(得分:0)

您使用的语句是XPath 2.0。 .NET框架不支持XPath 2.0,如果需要,您将不得不依赖第三方库。

http://msdn.microsoft.com/en-us/library/ms256471.aspx