我正在尝试编译一个动态生成的xpath表达式,并接收一个异常 - “它有一个无效的标记”。
text = GetText(); // has this value: /root/Info/PublisherName1 = "abcd"
XPathResultType result = XPathExpression.Compile(text).ReturnType;
我尝试使用以下代码转义双引号,但仍然收到相同的异常:
text = text.Replace("\"", "\\\"");
text = text.Replace("'", "\\'");
在尝试如上所述转义引号后,字符串仍然包含单引号,而在调试器中看不到任何反斜杠。
如何做到这一点?
答案 0 :(得分:2)
/root/Info/PublisherName1 = "abcd"
命名空间的方法, System.Xml.XPath
是无效的XPath
我相信你正在寻找这样的东西:
/root/Info/PublisherName1[text() = "abcd"]
答案 1 :(得分:1)
Expression是一个有效的XPath表达式,问题是引用来自Microsoft Word文件,我们需要用直引号替换智能引号,如下所示:
text = text.Replace('\u2018', '\'')
.Replace('\u2019', '\'')
.Replace('\u201c', '\"')
.Replace('\u201d', '\"')
.Replace('\u201e', '\"')
.Replace('\u2033', '\"');
然后,它没有任何问题。
对不起@Kirill,我必须取消选择你的答案。