2010-02-24 70 views
0

如何編碼將在「查找字符串」中的&號(&)不會破壞XML的「xml-safe」URL?XML安全URLEncoding?

比如:

www.somedomain.com/SomePage.aspx?SomeParam=SomeValue & SomeParam2 = SomeVal

+2

如果能幫助您指定爲什麼?我無法想象爲什麼某個不喜歡做某事的人(比如用字符串連接構建XML)需要擔心這一點。我並不是說你這樣做只是爲了知道你沒有這樣做,或者有點奇怪。 – AnthonyWJones 2010-02-24 16:35:54

+0

我正在使用接受xml的API,其中一個字段是url。我需要在文檔中傳遞的URL中指定動態參數。 – Achilles 2010-02-24 16:37:30

回答

4

簡短的答案是對URL進行編碼,就像文檔中的任何其他文本一樣。如果你替換字符如下時不會出問題:

& -> & 
' -> ' 
" -> " 
< -> &lt; 
> -> &gt; 

(和任何人讀取該文件與符合解析器會得到正確的,即未編碼,背課文)。

然而,我會迴應安東尼的評論:你爲什麼認爲你需要擔心這個?任何明智的XML編寫系統都應該採用您想要表示的文本並自己進行編碼(就像解析器將撤銷編碼一樣)。你的應用程序只需要處理未編碼的文本,它應該依靠XML編寫庫來處理字符編碼並保持格式良好。否則你冒險being called a bozo。它看起來像XmlTextWriter是進行所有必要更改的.net API。

+0

我正在使用一個自定義的TextWriter類來處理我的類的序列化。當我將它切換到XMLTextWriter時,XML序列化正確。 – Achilles 2010-02-24 22:13:27

+0

發佈到wcf服務時,這不起作用。 – user20358 2012-12-24 18:12:55