我有一些解析XML字符串的VB.Net代碼。在VB.Net中解析XML由於特殊字符而失敗
XML字符串來自TCP第三方流,因此我們必須獲取我們得到的數據並處理它。 我們遇到的問題是其中一個元素數據有時可能包含特殊字符,例如&,$,<,因此當執行「XMLDoc.LoadXml(XML)」時失敗 - 注意XMLDoc被配置爲「Dim XMLDoc As XmlDocument = New XmlDocument()」。
已經嘗試谷歌的答案,但我真的很努力尋找解決方案。曾看過RegEX但意識到這有一些限制;或者我只是不明白它足夠大聲笑。
如果它有幫助,這裏是一個XLM的例子,我們將流式傳輸給我們(僅供參考消息標籤來自SMS消息): - (如果它有助於唯一會有錯誤的位是(和所有我要檢查)的<Message>O&N</Message>
部分,因此在這種情況下,消息已經在與&)
<IncomingMessage><DeviceSendTime>19/02/2013 14:00:50</DeviceSendTime>
<Sender>0000111111</Sender>
<Status>New</Status>
<Transport>Sms</Transport>
<Id>-1</Id>
<Message>O&N</Message>
<Timestamp>19/02/2013 14:00:50</Timestamp>
<ReadTimestamp>19/02/2013 14:00:50</ReadTimestamp>
</IncomingMessage>
這只是不好的數據。除了在源頭修復它之外,你無能爲力。如果你很瞭解XML標準,那麼可以編寫一些正則表達式來處理它,但這只是一個解決更大問題的方式。 – Romoku 2013-02-19 17:53:52
我同意@Romoku通過Regex清理XML只是一個繃帶。 – malkassem 2013-02-19 17:56:45
'&'和'$'可能被簡單地「清理」,但是'<'將會很困難。你能否提供一些例子,其中的尖括號出現在你的流中?另外,你還看到了哪些其他「錯誤」字符? – 2013-02-19 18:00:11