我正在尝试使用以下.NET代码检查节点是否存在:
xmlDocument.SelectSingleNode(
String.Format("//ErrorTable/ProjectName/text()='{0}'", projectName));
Run Code Online (Sandbox Code Playgroud)
这总是提出:
XPathException:Expression必须求值为一个节点集.
为什么我会收到此错误,如何解决?谢谢.
如何在.NET Framework中阻止XPATH注入?
我们以前使用字符串连接来构建XPATH语句,但发现最终用户可以执行一些任意的XPATH.例如:
string queryValue = "pages[@url='" + USER_INPUT_VALUE + "']";
node = doc.DocumentElement.SelectSingleNode(queryValue);
Run Code Online (Sandbox Code Playgroud)
从输入字符串中删除单引号和双引号是否足够?
或者,.NET框架是否支持参数化的XPATH查询?