2012-04-05 9 views
0

アンドロイドでxmlファイルを解析し、私はこのようにやっている:XMLのSAXパーサー - 無視結合していない接頭辞例外

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

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

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

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

p.s.私はメモリ内のすべてのファイルを文字列として読み込まず、名前空間を取り除いたり、ファイルを書き直したりする必要はありません。

答えて

1

別のスレッドで解決策が見つかりました。

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

次に、読み取り機能を設定できます。

利用可能な機能のうち、1つは名前空間を無効にし、そのトリックを行います。

参考 - >LINK

関連する問題