XML Lite解析问题 - 解析时忽略无效数据

时间:2012-04-06 07:35:07

标签: c++ visual-studio xml-parsing xmllite

我使用microsoft的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
        }

1 个答案:

答案 0 :(得分:1)

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

  1. 使用XmlLite或其他兼容的XML解析器生成XML。通过这种方式,您不会在第一时间获得无效字符。
  2. 如果您控制了源数据,则过滤掉无效字符。 XmlLite支持XML 1.0,其有效字符范围为#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]。
  3. 除此之外,XmlLite可能不是您的选择。