例如,xml如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<Test>
<TestNode index = "A's B"s">ABCDEFG</TestNode>
</Test>
通常我在C#中尝试以下代码来获取节点:
XmlDocument doc= new XmlDocument();
doc.Load("xxx.xml");
string xpath = string.Format("//TestNode[@index='{0}']", "A's B\"s");
XmlNode TestNode = doc.SelectSingleNode(xpath);
代码出错,因为xpath将变为“// TestNode [@ index ='A的B \”s“
虽然我可以使用“而不是”来表示值,只需说出
string xpath = string.Format("//TestNode[@index=\"{0}\"]", "A's B\"s");
但是代码也会出错,因为该值包含“
那么,如果我想选择其属性值包含'和'的节点,我该怎么办?
答案 0 :(得分:0)
mladenp的博客文章描述了正确XMLEncoding的许多选项:http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx