我正在创建一个更大的XML文档中使用的几个XmlElements。
XmlElement thisElement = xmlSearchParameters.CreateElement("value");
thisElement.InnerXml = this.searchParameters[key];
这适用于大多数情况,但如果searchParameters [key]的值恰好包含&符号,我得到以下两个错误之一:
发生了意外的文件结束。第1行,第1位。 - 如果值仅为ON&
解析EntityName时发生错误。第1行,第7行。 - 如果值包含&与其他文字混在一起。
包括& amp;的优先方式是什么?和XmlElement中的任何其他特殊符号?我怀疑必须有一个更好的方法,而不仅仅是更换&用别的东西(某种XmlFormat方法???)。
答案 0 :(得分:8)
为什么首先使用InnerXml
?如果您在未解析的字符串形式中有一些有效的标记,并且想要将其插入那里,则应该使用它。对于纯文本,请使用InnerText
:
thisElement.InnerText = this.searchParameters[key];
答案 1 :(得分:4)
如果使用InnerXml,则必须保证文本值是有效的xml。 使用InnerText属性而不是InnerXml。
答案 2 :(得分:2)
SecurityElement.Escape将替换少于,大于,引号,撇号和符号符号,这可能只是你需要的。