我选择SingleNode的代码
var node=doc.SelectSingleNode("//Product[SKU=" + barcode + "]");
当我传递像“123456”这样的普通字符串时,它正常工作,但对于包含'_'(Underscore)的字符串,它的抛出异常。
System.Xml.XPath.XPathException: '//Product[SKU=100238_0.5]' has an invalid token
任何解决方案。
答案 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 + "]");