2013-04-11 58 views
0

我試過在過去的2天裏發現了這個問題的答案,我找不到任何可以與我們的代碼一起工作的東西。反序列化xml屬性並處理換行符和其他特殊字符

我們有一個傳入的xml響應格式如下,需要能夠處理屬性內的換行符和其他特殊字符。

我們遇到問題的一個是「代理注意事項」,我們似乎無法能夠找到一個XPath功能的特殊字符轉換爲\ r \ n等

「什麼&#的xD; & #xA;一切& #xD; & #xA;東西」應爲 「任何\ r \ n一切\ r \ n的東西」

+1

你看過'Regex.Replace'和'String.Replace'嗎?我不知道你爲什麼期待'XPath'做字符轉換 – tnw 2013-04-11 17:50:37

+0

是的,我們不想使用正則表達式。不知道爲什麼XPath無法反序列化這個?它是一個XML解析引擎,不是嗎?如果我們使用了Regex,你會建議我們在解析器中實現它嗎? – devfunkd 2013-04-11 18:13:54

回答

1

偏偏你不能。代理程序屬性值是有效的,並且不能在XPath搜索中爲您進行轉換。您必須將所有\ n \ r替換爲「
 & #xA;」才能轉換您的搜索路徑。如果它的值希望被轉換,那麼你可以使用「HttpUtility.HtmlDecode Method」。

我以前遇到過這個問題,並且遭受過同樣的困擾。編碼並不總是一門完美的科學,就像你希望的那樣。