4

単純なXMLファイルを読みたい。Javaで Xmlを実行する簡単な方法を見つけた

サンズパーサーよりもXOMパーサーを使用する利点を確認したいだけのパーサーもいくつかあります。

助言がありますか?

4

3 に答える 3

6

XOMは、標準のW3CDOMと比較して非常に高速です。それがあなたの優先事項であるなら、これ以上良いものはありません。

ただし、それでもDOMタイプのAPIであるため、メモリ効率が良くありません。SAXやSTAXに代わるものではありません。

于 2009-06-16T13:13:54.177 に答える
4

最良のXMLライブラリとその最上位(XOM)の回答に関するこの質問を確認することをお勧めします。XOMの利点に関する多くの詳細。(不明な点がある場合はコメントを残してください。PeterŠtibranýはXOMの内外を知っているようです。)

前述のように、XOMは、標準のjavax.xmlと比較して、ほとんどのタスクで非常に高速で単純です。例については、JavaでXMLファイルを読み取る最も簡単な方法についての質問でこの投稿を参照してください。XOMの見栄えを良くする(そしてjavax.xmlはかなり不器用な)いくつかの良い例を集めました。:-)

個人的には、評価した後、XOMが好きになりました(リンクされた投稿でわかるように)。新しいJavaプロジェクトの場合、XML処理にXOMを選択する可能性があります。私が見つけた唯一の欠点は、ストリーミングXMLを直接サポートしていないことです(私の出身地であるdom4jとは異なります)が、簡単な回避策で問題なくストリーミングできます。

于 2009-06-22T17:24:49.373 に答える
1

データにどのようにアクセスする必要がありますか?

ワンパスの場合は、メモリ内にツリーを構築する必要はありません。SAX(高速、シンプル)またはStAX(高速、それほど単純ではない)を使用できます。

ナビゲートするためにツリーをメモリに保持する必要がある場合は、XOMまたはJDOMが適切な選択です。 DOMは、拡張機能の有無にかかわらず、レベル1、2、または3であるかどうかにかかわらず、最後の手段の選択肢です。

XercesはJavaに含まれているパーサーです(ただし、6.0でもJavaにバンドルされているものを使用せずにApacheから更新されたバージョンを取得する必要があります)、XNIと呼ばれるストリーミングネイティブインターフェイスもあります。

他の既成のパーツをチェーンに接続したい場合は、SAXまたはStAXがメモリ内に独自のモデルを構築する可能性があるため、多くの場合うまく機能します。たとえば、Saxon XSLT / XQueryエンジンはDOM、SAX、またはStAXで動作しますが、内部でTinyTree(デフォルト)またはDOM(オプション)を構築します。 DataDirect XQueryはSAX、StAX、またはDOMでも機能しますが、StAXが本当に気に入っています。

于 2009-06-16T13:23:01.317 に答える