如何选择节点's属性如果值包含符号'和“

本文关键字:如果 包含 符号 属性 选择 节点 何选择 | 更新日期: 2023-09-27 18:05:55

例如:

<?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's B'"s"

虽然我可以用"而不是"来表示值,但只要说

string xpath = string.Format("//TestNode[@index='"{0}'"]", "A's B'"s");

然而,代码也得到错误,因为值包含"

"

如果我想选择一个属性值同时包含'和"的节点,我该怎么做呢?

如何选择节点's属性如果值包含符号'和“

mladenp的博客条目描述了一些正确XMLEncoding的选项:http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx