2012-09-05 130 views
2

我有用C#編寫的.NET應用程序,它以XML格式保存信息。應用程序將應用程序數據序列化到xml中。該應用程序包含一個文本框,用戶可以自由輸入任何文本。我有些情況下用戶已經設法輸入字符,主要是當他們從其他應用程序複製和粘貼文本到文本框中,其中xml文檔被破壞。是否有一種通用的方法來管理XML文檔中的非法字符,而不必在輸入時在每個文本框中將其過濾掉。從文件這就是XML中的非法字符

樣品損壞

<Propery> 
    <Name>&#x8;Alimentação Controlador</Name> 
    <Value>24</Value> 
    <Unit>Vca</Unit> 
</Propery> 

文檔序列化與ASCIIEncoding.UTF8

+0

哪個'encoding'是否聲明XML文檔?你如何生成XML(你使用XML庫,還是直接生成)? –

+0

在你的情況&是問題。 –

+0

Document declarations <?xml version =「1.0」encoding =「utf-8」?> – klashagelqvist

回答

-1

通過JTMon的建議,您應該使用最佳實踐你甚至可以用這種「牽連」字。

導出到XML時,我也遇到了相同的情況。我不知道它是否適用於您,但嘗試使用stringbuilder而不是string來生成xml。

你可以試試這個太

i.SubItems[0].Text.Trim('\0') 

希望這會有所幫助。

-1

,就應該替換以下非法字符:

&lt;(<)

&amp;(&)

&gt;(>)

&quot;(「)

&apos;(')