我有一些解析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