0
我使用Microsoft的XML Lite(http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms752872%28v=vs.85%29。 aspx)XML Lite解析問題 - 解析時忽略無效數據
有沒有辦法忽略它可能做的任何驗證錯誤(我在與「」有關的節點上獲得了一些模糊的錯誤 - 儘管XML輸入看起來很好)並且繼續下一個節點?
我有這樣
while (!reader->IsEOF())
{
result = reader->Read(&nodeType);
if (result != S_OK)
{
//just ignore cuurrent read and continue reading more from XML
continue; // does not work
}
在我的情況下,問題在於我沒有解析整個XML文檔(而且這不是明顯的:-)),正如我所預料的那樣,問題就在於此。 – Ghita 2012-04-19 07:52:57
有趣的是,自Win8以來,XmlLite Reader開始支持非阻塞功能,這意味着當不是所有數據都可用時,您可以在IStream/ISequentialStream實現中返回E_PENDING,我相信這是您的情況。 Read()方法將相應地返回E_PENDING,但如果流中有更多數據可用,則下一個Read()調用將恢復解析。有關更多信息,請參閱http://msdn.microsoft.com/en-us/library/windows/desktop/ms753140(v=vs.85).aspx。 – 2012-04-20 06:01:18