0

我使用微软的 XML Lite (http://msdn.microsoft.com/en-us/library/windows/desktop/ms752872%28v=vs.85%29.aspx)

有没有办法忽略它可能做的任何验证错误(我在与“”相关的节点上遇到一些模糊的错误 - 尽管 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
        }
4

1 回答 1

1

XmlLite 返回的错误代码是什么?无效字符?XmlLite 是一个符合 W3C 的 XML 解析器,这意味着它是设计用来阻塞带有无效字符的无效 XML 文件的,并且没有这样的功能可以忽略无效字符并继续前进。选项包括:

  1. 使用 XmlLite 或其他兼容的 XML 解析器来生成 XML。这样一来,您就不会得到无效字符。
  2. 如果您可以控制源数据,则过滤掉无效字符。XmlLite 支持 XML 1.0,有效字符范围为 #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]。

除此之外,XmlLite 可能不是您的选择。

于 2012-04-19T01:42:08.993 回答