StAX
でファイルを解析するための2つの異なるコードがあります。 カーソルAPIを使用してイテレータAPIを使用して:迅速なグーグルでは解析する2つの方法があることを教えてくれました。 2つの違いと、どちらが開発者の観点から使いやすいかを教えてください。StAX Cursor APIとIterator APIの違いは何ですか?
答えて
あなたは、Java Webサービス開発パックのチュートリアルやJava EE 5 tutorial内のStAX APIのセクションで答えを見つけることが最も可能性が高いです。それらの両方が、私は以下の再生していたのと同じ情報が含まれています:
カーソルと イテレータAPIの間で選択する前にカーソルとイテレータのAPI
を比較し、あなたはそのことができますいくつかの 事を注意してください
オブジェクトのXMLEvent sから作成された:あなたは カーソルAPIで行うことができない イテレータAPIで行います配列、リスト、マップで を使用することができ、 が後続のイベントに移動した後でも、 のアプリケーションで をアプリケーションに渡すことができます。
あなたはどちらかを完全 既存の項目の 新しい情報項目や拡張でのXMLEventのサブタイプを作成しますが、追加 メソッドを持つことができます。
XMLイベントストリームからイベントを追加または削除する方法は、カーソルAPIを使用するよりもはるかに簡単な の方法で行うことができます。
同様、 あなたの選択を行う際に念頭に置いて、いくつかの一般的な 勧告を保つ:
あなたはJ2MEのように、特にメモリに制約の 環境のためにプログラミングされている場合、あなたは を小さくすることができます、より効率的なコード、 カーソルAPI。
パフォーマンスが最優先事項である場合 - 例えば、 低レベルのライブラリや インフラストラクチャを作成するとき - カーソルAPIは 、より効率的です。
XML処理パイプラインを作成する場合は、反復子 APIを使用します。
イベントストリームを変更する場合は、イテレーターAPIを使用します。
アプリケーションでイベントストリームのプラグ可能な処理 を処理できるようにするには、イテレータ APIを使用します。あなたはイテレータAPIを使用して、強い優先一つの方法または 他のを持っていない場合は、一般的に
は、それがより 、柔軟で拡張することにより 「未来プルーフ」アプリケーションであるため、 がお勧めです。カーソルは、それが解析されていた以前のノードを覚えておく必要はありませんようお勧めしますが、
イテレータAPIは、カーソルAPIよりも遅くなります。それはXML文書の順方向のみの解析を提供し、XMLEvent
オブジェクトの構築のオーバーヘッドはありません。明らかに、a benchmarkは、SAXがStAXと比較して大きな文書を解析する際に優れているかもしれないことを示しています。データセットのベンチマークの結果を再現できるかどうかを確認したい場合があります。
- 1. WindowsのGetDesktopWindow APIとOpenInputDesktop APIの違いは何ですか?
- 2. Android 4.0 - APIレベル14とGoogle API(Google Inc.) - APIレベル14:違いは何ですか?
- 3. アンドロイド用のネイティブキャンバスAPIとhtml5キャンバスAPIのパフォーマンスの違いは何ですか?
- 4. Class APIのgetDeclaredConstructorsとgetConstructorsの違いは何ですか?
- 5. UIレベルテストとAPIレベルテストの違いは何ですか?
- 6. Web APIとASPの主な違いは何ですかMVC
- 7. BOSSとYahoo Web Search APIの違いは何ですか?
- 8. API GatewayとESBの違いは何ですか?
- 9. APP IDとAPIキーの違いは何ですか?
- 10. Asp.Net Web APIとWCFサービスの違いは何ですか?
- 11. Facebook Php APIとoAuth認証の違いは何ですか?
- 12. showFeedDialogとpublishUserAction Facebook APIの違いは何ですか?
- 13. gdata-java-clientとgoogle-api-java-clientの違いは何ですか?
- 14. Here-API NavigationManager.PositionListenerとPositioningManager.OnPositionChangedListenerの違いは何ですか?
- 15. ウェブサービスとAPIの違いは?
- 16. Google Speech APIとWeb Speech APIの違い
- 17. 良いAPIインデクサーとは何ですか?
- 18. IteratorとIterableの違い
- 19. GitHub API V3:pushed_atとupdated_atの違いは何ですか? V3のAPIのレポを見ると
- 20. ScalaのIteratorとStreamの違いは?
- 21. JavaScriptのFetch APIの "同じ起源"と "ノーコア"の違いは何ですか?
- 22. mvcコントローラメソッドとWCF WEB APIレストサービスコールの呼び出しの違いは何ですか?
- 23. Oracle Express Edition(XE)とStandard Edition(SE)のPL/SQL APIの違いは何ですか?
- 24. Win32 APIの `A`関数と` W`関数の違いは何ですか?
- 25. ネイティブ2D描画APIとiphone用html5 canvas APIのパフォーマンスの違いは何ですか?
- 26. Facebook APIとTwitter APIの問題点は何ですか?
- 27. Windows APIのHANDLEとHWNDの違いは?
- 28. GoogleアナリティクスAPI:「YOUR_OAUTH_ACCESS_TOKEN」とは何ですか?
- 29. NaClソケットAPIとは何ですか?
- 30. サーブレットAPIとポートレットAPIとは何を意味しますか?
Thanks Vineet、それはかなり有益でした。 – Anand
大規模な文書の問題に関する更新。あなたが提示したリンクは、Structured-Document Processing Languagesに関する2011コースからのものでした。あなたのコメントは2011年のコメントだったのですが、今は2014年です。新しいベンチマークは行っていませんが、リンクのコース情報を注意深く見れば、パフォーマンスの問題の多くはDOCTYPEが中古。 3年前にこの問題がはっきりと理解されていたことを考えると、これまでに問題が修正されたようです。また、 StAX Cursor APIはそれまでのところ最高のパフォーマンスを発揮しました。さらに大きなファイルサイズでは非常にうまく機能していました。 –