2009-07-30 44 views
2

我在较大的XML文档中创建了几个XmlElements。将&符号添加到XmlElement中

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

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

意外的文件结尾。行1,位置1. - 如果值仅为&

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

在XmlElement中包含&和任何其他特殊符号的首选方式是什么?我怀疑必须有更好的方法,而不是用别的东西替换&(某种XmlFormat方法???)。

回答

8

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

thisElement.InnerText = this.searchParameters[key]; 
+0

感谢您的提示。过去我没有使用过XmlElement,而这正是我开始编写代码时的设置方式。更改为使用InnerText解决了我的问题。 – Kris 2009-07-30 17:44:48

2

SecurityElement.Escape将替换小于,大于,引号,撇号和符号符号,这可能是您所需要的。

4

如果使用InnerXml你必须确保文本值是有效的XML。 使用InnerText属性而不是InnerXml。