大規模なXMLファイルを解析し、Javaから一度に完全なノードを読みたいと思っています。ファイルはツリーに入れるために大きくなります。可能であれば、プル・パーサーを使用したいのですが、それはプログラムするのが簡単だからです。次のXMLデータ 代わりに私がレコードノード上の完全な情報を含むオブジェクトを返すためのhasNextまたはいくつかの類似の機能への各呼び出しが欲しいのStAXパーサーを使用しながら、すべてのイベントをチェックすることの
考えます。 Perl XML :: LibXML :: Readerを使用すると、readメソッドを使用してこれを行うことができますので、Javaで同等のものを探しています。プルパーサーを使用して、大きなxmlファイルをJavaで一度に1ノードずつ読み込みますか?
1
A
答えて
2
Commons Digesterは、このタイプの問題には本当に良いです。パーザが特定のタグに出会うと、アクションを実行します(たとえば、オブジェクトを作成するためのファクトリメソッドを呼び出します)。解析コードを書く必要がなく、開発を迅速かつ軽量にします。
以下は、あなたが使用できる簡単な例のパターンです:
<pattern value="myConfigFile/foos/foo">
<factory-create-rule classname="FooFactory"/>
<set-next-rule methodname="processFoo" paramtype="com.foo.Foo"/>
</pattern>
パーサはFoo
オブジェクトを作成することがFooFactory
にcreateObject(Attributes)
を呼び出します「foo」というタグを、遭遇
Digester
スタックの上部にあるオブジェクトの
processFoo
を呼び出します(通常、解析を開始する前にスタックにプッシュします)。したがって、これらのオブジェクトをコレクションに追加するには、
processFoo
を実装することができます。ファイルが大きすぎる場合は、各オブジェクトを到着時に処理してから放棄するだけです。
1
は、私はそれを使用するかもしれないが、それは積極的に維持されているように見えていませんXML Pull Parser
関連する問題
- 1. Java SQLデータベーステーブルを一度に1行ずつ読み込みます
- 2. C - fgets/getlineを使用せずに一度にファイル1行から読み込みます。
- 3. asyncioでファイルを1行ずつ読み込みます
- 4. XMLでファイルを読み込みJava
- 5. 大きなXMLをsybaseに書き込んで読み込みますか?
- 6. ファイルを1行ずつ読み込んでJavaプログラムを実行
- 7. データベースから巨大なデータを読み込み、xmlに書き込むJava
- 8. ノードJSチャンクファイルは割り込みなしで1つのファイルとして読み込みますか?
- 9. ファイルを(utf-8ではなく)1行ずつ読み込みますか?
- 10. poll/selectを使用して一度に1バイトずつ読み取る
- 11. 私のようなXMLファイルを読んでいる2つのXMLファイルを読み込み、最初のXMLノード
- 12. ファイルストリームを1行ずつ同期して読み込みます。
- 13. ログファイルからphpファイルに1行ずつ読み込みたい
- 14. 一度に2バイトずつ配列から読み込みますか?
- 15. xmlファイルを1行ずつ読み込んでリストに追加する
- 16. xmlタグのJavaファイルの読み込み
- 17. XMLとCSVファイルの読み込みJava
- 18. asp.netでXMLファイルを読み込み、読み込みするMVC
- 19. Java: "\ n"を無視して1行ずつファイルを読み込む方法
- 20. c#XML読み込み:同じノード名を持つノードの読み取り
- 21. Javaコードを使用してxmlノードを読み取る
- 22. RxJava | RxAndroidは1つずつアイテムを読み込みます
- 23. 大きなファイル(Javaヒープスペース)の読み込み
- 24. Bashは、一度に1000行のファイルを一度に読み込みます。
- 25. 大きなファイルの書き込みと読み込み用に開く
- 26. ファイルを1行ずつ読み込むときのパフォーマンス対ファイル全体を読み込むときの比較
- 27. Cで一度にバイナリファイルを1フィールド読み込み
- 28. javaを使用してファイルからすべてのリンクを1つ1つ(webcrawling)読み込む方法?
- 29. JAVA-ファイル1の読み込みエラー(エラー)
- 30. whileループのエラーコード。ファイルを1行ずつ読み込みます。 Cで
を試してみてください。 – Jared