【发布时间】:2016-08-24 14:18:54
【问题描述】:
我必须为第三方创建一个 XML 文档,在他们的规范中,他们说他们需要 &" 和 ' 转义。当我设置 XMLNode 的 InnerText 时,我只会得到 和 & 自动转义。 " 和 ' 被单独留下。经过一番挖掘,我发现这些是有效的,这就是为什么它们没有逃脱。不幸的是,第三方需要这个。
我发现 System.Security.SecurityElement.Escape 会转义我需要的所有字符,但是当我设置 XMLNode 的 InnerText 时,它会转义我输入的转义字符中的与号,所以我得到 & quot;而不是"。 & 和其余部分之间没有空格,但我需要这样做才能在此处正确显示在文本中。我尝试设置 InnerXML 而不是 InnerText 但这似乎取消了我的字符串,所以它看起来就像在我手动转义它之前所做的那样。
XmlNode nameNode = xmlDoc.CreateElement("name");
nameNode.InnerText(); = System.Security.SecurityElement.Escape(countyInfo.CountyName.ToUpper());
关于如何处理这个问题有什么想法吗?
【问题讨论】:
-
"他们说他们需要的规范 &" 和'转义" - 然后他们的规范被破坏了,他们需要修复他们的系统末端。XML 不会变成当 ' 没有转义时语法无效,这是唯一重要的事情。