2

XOMをXMLライブラリとして使用してAndroidアプリからxmlファイルを読み取ろうとしています。私はこれを試しています:

Builder parser = new Builder();
Document doc = parser.build(context.openFileInput(XML_FILE_LOCATION));

しかしnu.xom.ParsingException: Premature end of file.、ファイルが空の場合でも取得しています。

非常に単純なXMLファイルを解析する必要があり、XOMの代わりに別のライブラリを使用する準備ができているので、より良いライブラリがあるかどうかを知らせてください。または、XOMを使用した問題の解決策です。

それが役立つ場合は、パーサーを取得するためにxercesを使用しています。

- - - 編集 - - -

PS:これの目的は、空のファイルを解析することではありませんでした。ファイルは、このエラーを示した最初の実行でたまたま空でした。

4

2 に答える 2

2

この投稿を最後までたどると、これはxerces空のファイルであるという事実に関係しているようで、側で解決策に達していませんxerces

そこで、次のように問題を処理しました。

Document doc = null;
try {
    Builder parser = new Builder();
    doc = parser.build(context.openFileInput(XML_FILE_LOCATION));
}catch (ParsingException ex) { //other catch blocks are required for other exceptions.
   //fails to open the file with a parsing error.
   //I create a new root element and a new document.
   //I fill them with xml data (else where in the code) and save them.
    Element root = new Element("root");
    doc = new Document(root);       
}

そして、私は好きなことをすることができますdoc。また、追加のチェックを追加して、原因が実際に空のファイルであることを確認できます (質問に対する sam のコメントの 1 つに示されているファイル サイズをチェックするなど)。

于 2012-12-31T00:51:26.940 に答える