将Ampersand添加到XmlElement

时间:2009-07-30 16:34:53

标签: c# xml

我正在创建一个更大的XML文档中使用的几个XmlElements。

XmlElement thisElement = xmlSearchParameters.CreateElement("value");
thisElement.InnerXml = this.searchParameters[key];

这适用于大多数情况,但如果searchParameters [key]的值恰好包含&符号,我得到以下两个错误之一:

发生了意外的文件结束。第1行,第1位。 - 如果值仅为ON&

解析EntityName时发生错误。第1行,第7行。 - 如果值包含&与其他文字混在一起。

包括& amp;的优先方式是什么?和XmlElement中的任何其他特殊符号?我怀疑必须有一个更好的方法,而不仅仅是更换&用别的东西(某种XmlFormat方法???)。

3 个答案:

答案 0 :(得分:8)

为什么首先使用InnerXml?如果您在未解析的字符串形式中有一些有效的标记,并且想要将其插入那里,则应该使用它。对于纯文本,请使用InnerText

thisElement.InnerText = this.searchParameters[key];

答案 1 :(得分:4)

如果使用InnerXml,则必须保证文本值是有效的xml。 使用InnerText属性而不是InnerXml。

答案 2 :(得分:2)

SecurityElement.Escape将替换少于,大于,引号,撇号和符号符号,这可能只是你需要的。