我有以下 C# 代码:
var selectNode = xmlDoc.SelectSingleNode("//CodeType[@name='" + codetype +
"']/Section[@title='" + section + "']/Code[@code='" + code + "' and
@description='" + codedesc + "']") as XmlElement;
当我运行我的代码时,它引发了错误“上面的语句有一个无效的标记”
这些是上述语句的值。
codeType=cbc
section="Mental"
codedesc="Injection, enzyme (eg, collagenase), palmar fascial cord (ie,
Dupuytren's contracture"
最佳答案
注意到 codedesc
中的撇号 ('
) 了吗?
你需要以某种方式逃避它。 XPath 解释器将其视为字符串定界符,并且不知道如何处理它后面的另一个撇号。
一种方法是用双引号而不是撇号将字符串括起来。
因此您的代码可能会变成:
var selectNode = xmlDoc.SelectSingleNode(
"//CodeType[@name='" + codetype + "']" +
"/Section[@title='" + section + "']" +
"/Code[@code=\"" + code + "' and @description='" + codedesc + "\"]")
as XmlElement;
(注意在第四行,撇号('
)变成了双引号(\"
))
虽然这种方法适用于您提供的数据,但您仍然不是 100% 安全的:其他记录本身可能包含双引号。如果发生这种情况,我们也需要为这种情况考虑一些事情。
关于c# - Xpath 错误有一个无效的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437684/