2009-07-30 72 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。