我有一个看起来像<slot highcount="20" lowcount="10" />
我尝试了以下xpath表达式:
XmlNode node = xdoc.SelectSingleNode("slot[@lowcount>=12] && slot[@highcount <=12]");
但是我收到了无效的令牌错误,而且我没有足够的经验知道我做错了什么。有什么想法吗?
答案 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不使用&&
和||
;它使用and
和or
。
3.6逻辑表达式
逻辑表达式是和 - 表达式或或 - 表达式。如果逻辑表达式未引发错误,则其值始终为布尔值
true
或false
之一。[8] OrExpr ::= AndExpr ( "or" AndExpr )* [9] AndExpr ::= ComparisonExpr ( "and" ComparisonExpr )*