【问题标题】:How to select a node's attribute if the value containing symbol ' and "?如果值包含符号'和“,如何选择节点的属性?
【发布时间】:2011-08-16 03:33:59
【问题描述】:

例如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's B\"s"

虽然我可以用 " 代替 ' 来表示值,只是说

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

但是代码也会出现错误,因为值包含“

那么如果要选择属性值同时包含'和"的节点怎么办?

【问题讨论】:

  • 示例不是有效的 XML。

标签: c# xpath symbols


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多