使用'&&' Xpath中的运算符?

时间:2010-05-28 19:03:45

标签: xpath

我有一个看起来像<slot highcount="20" lowcount="10" />

的xml节点

我尝试了以下xpath表达式:

XmlNode node = xdoc.SelectSingleNode("slot[@lowcount>=12] && slot[@highcount <=12]");

但是我收到了无效的令牌错误,而且我没有足够的经验知道我做错了什么。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您需要使用“和”运算符 - 没有“&amp;&amp;” XPath中的运算符。我认为这样的事情应该有效:

XmlNode node = xdoc.SelectSingleNode("slot[@lowcount>=12 and @highcount <=12]");

编辑:这是正确的语法,但要选择问题中指定的节点,我们需要像下面的第二个片段一样翻转运算符。我将原始代码示例保留在上下文中,以便注释线程有意义:

XmlNode node = xdoc.SelectSingleNode("slot[@lowcount<=12 and @highcount >=12]");

答案 1 :(得分:0)

XPath不使用&&||;它使用andor

  

3.6逻辑表达式

     

逻辑表达式和 - 表达式或 - 表达式。如果逻辑表达式未引发错误,则其值始终为布尔值truefalse之一。

 [8]      OrExpr  ::= AndExpr ( "or" AndExpr )*
 [9]      AndExpr ::= ComparisonExpr ( "and" ComparisonExpr )*

参考