0

アンドロイドでxmlファイルを解析するとき、私は次のようにしています:

try
{
    InputStream is = ...
    MyContentHandler ch = new MyContentHandler();
    Xml.parse(is, Encoding.UTF_8, ch);
}
catch ...

問題は、解析しようとしているファイルの形式が正しくない場合があることです。私の場合、宣言されていない名前空間が存在する可能性があります。

私が興味を持っているデータはそれらのタグ内にないので、単に無視することができますが、コンテンツハンドラー内ではなく、パーサー自体にバインドされていないプレフィックスの例外があります。これは、例外が発生した場合、解析プロセス全体が中断されることを意味します。

この種のエラー(または名前空間)を無視してsaxパーサーを使用する方法はありますか?

psメモリ内のすべてのファイルを文字列としてロードして名前を削除したり、ファイルを書き直したりすることを避けたい。

4

1 に答える 1

1

別のスレッドで解決策を見つけました。

Xml.parseを使用する代わりに、SAXParserFactoryを介してsaxパーサーを手動でインスタンス化し、リーダーを取得する必要があります。

その後、リーダー機能を設定できます。

利用可能な機能の中で、名前付けを無効にするものがあり、それでうまくいきます。

参照->リンク

于 2012-04-05T21:14:57.743 に答える