2013-05-12 121 views
0

我使用,我在CodeProject here勘定雙引號替換XML字符

,並在類中發現了一個模板Excel導出類存在於但是替換某些字符來讓他們安全爲Excel,以下的方法線似乎被絆倒的系統,因爲它消除了分隔\」的報價,並與一個雙引號替換它

input = input.Replace("\"", """); 

如果我再這樣劃到:

input = input.Replace("\"", "\""); 

它破壞了替換的目的,如果我保持原樣,班級的其他成員因爲它是一個未封閉的字符串而絆倒。有沒有人遇到過這個或有任何想法來解決這個問題?

謝謝你,史蒂夫

+0

三雙引號e xample甚至不會編譯 - 你能澄清你正在替換的是什麼嗎? – 2013-05-12 16:01:56

+1

你的意思是你想用「\」替換「\\\」「? – 2013-05-12 16:02:48

+0

那麼這個方法需要移除從XML中的「轉義」,它在早期階段被實現並附加到字符串編寫器中,在下載文件之前需要將其刪除,否則Excel的XML解析將跳出。 。我會嘗試你的建議,謝謝 – 2013-05-12 16:05:48

回答

3

我強烈建議你不要只使用本文的代碼。它看起來像它沒有被正確顯示(我懷疑它應該是Replace("\"", """),但即使正確的,它不會是好的代碼

相反,使用XML API - LINQ到XML是很容易的使用。這樣,你不需要做任何的XML的逃避自己。

你幾乎從來沒有應該將它們視爲簡單的文本創建XML文檔。相反,始終使用XML API,它是確保您最終創建有效XML的更簡潔的方式。

+0

謝謝,我會檢查出來,因爲我有一種感覺,XML中有不止一個問題不僅僅是引用轉義... – 2013-05-12 16:11:13

+0

@StephenLeake:的確如此。這是嘗試使用簡單的字符串操作來執行XML的問題 - 如果您不小心,會出現各種各樣的錯誤,請始終使用XML API。 – 2013-05-12 16:19:51