Path有一个无效的令牌XmlNode选择单个节点

时间:2014-01-02 08:49:52

标签: c# .net-4.0 xmldocument

我选择SingleNode的代码

 var node=doc.SelectSingleNode("//Product[SKU=" + barcode + "]");

当我传递像“123456”这样的普通字符串时,它正常工作,但对于包含'_'(Underscore)的字符串,它的抛出异常。

System.Xml.XPath.XPathException: '//Product[SKU=100238_0.5]' has an invalid token

任何解决方案。

3 个答案:

答案 0 :(得分:1)

尝试:

'//Product["SKU=100238_0.5"]'

或者:

"//Product['SKU=100238_0.5']"

答案 1 :(得分:1)

由于下划线使字符串成为非数字值,因此应将其视为谓词中的字符串...

var node=doc.SelectSingleNode("//Product[SKU='" + barcode + "']");
// Note the single quotes (SKU='')

xpath表达式应该读取,例如,如下所示:

//Product[SKU='100238_0.5'] or
//Product[SKU="100238_0.5"]

答案 2 :(得分:-1)

尝试将其作为字符串文字传递:

var node=doc.SelectSingleNode(@"//Product[SKU=" + barcode + "]");