0

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
        }
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 に答える