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. Java Stax Iterator APIメソッドの実装
- 2. WindowsのGetDesktopWindow APIとOpenInputDesktop APIの違いは何ですか?
- 3. google apiとgoogle rest APIの違いは何ですか?
- 4. Web APIとAzure API Appの違いは何ですか?
- 5. Bing Speech APIとUWP Speech APIの違いは何ですか
- 6. Android 4.0 - APIレベル14とGoogle API(Google Inc.) - APIレベル14:違いは何ですか?
- 7. api keyとclient idとservice accountの違いは何ですか?
- 8. (1.2サフィックスなし)のlog4j-1.2-APIとのlog4j-APIの違いは何ですか
- 9. アンドロイド用のネイティブキャンバスAPIとhtml5キャンバスAPIのパフォーマンスの違いは何ですか?
- 10. Azure App Services APIとApp Services Mobile AppsのカスタムAPIの違いは何ですか?
- 11. WhtaはGoogle Maps APIとRestrictキーの違いは何ですか?
- 12. Google Rest APIとGoogle Apps Script Execution APIの違いは何ですか
- 13. GAE Search APIとDatastoreのクエリの違いは何ですか?
- 14. RxJs APIのbindCallbackとbindNodeCallbackの違いは何ですか?
- 15. 休憩 - API urlの ":"と "{}"の違いは何ですか?
- 16. OpenVXオブジェクトノードのAPI vxReleaseNodeとvxRemoveNodeの違いは何ですか?
- 17. Fabric.ioのAPIキーとビルドシークレットの違いは何ですか?
- 18. AuthyのTOTPとPhone Verification APIの違いは何ですか?
- 19. Class APIのgetDeclaredConstructorsとgetConstructorsの違いは何ですか?
- 20. linuxのapiファイルとdeviceファイルの違いは何ですか?
- 21. gdata-java-clientとgoogle-api-java-clientの違いは何ですか?
- 22. Facebook Php APIとoAuth認証の違いは何ですか?
- 23. Google Cloud Vision APIとモバイルビジョンの違いは何ですか?
- 24. Asp.Net Web APIとWCFサービスの違いは何ですか?
- 25. showFeedDialogとpublishUserAction Facebook APIの違いは何ですか?
- 26. APIアプリケーションとロジックアプリケーションの違いは何ですか?
- 27. APP IDとAPIキーの違いは何ですか?
- 28. android api 17と23の違いは何ですか?
- 29. IBM APIマネージャーとIBM Data Powerの違いは何ですか?
- 30. BOSSとYahoo Web Search APIの違いは何ですか?
Thanks Vineet、それはかなり有益でした。 – Anand
大規模な文書の問題に関する更新。あなたが提示したリンクは、Structured-Document Processing Languagesに関する2011コースからのものでした。あなたのコメントは2011年のコメントだったのですが、今は2014年です。新しいベンチマークは行っていませんが、リンクのコース情報を注意深く見れば、パフォーマンスの問題の多くはDOCTYPEが中古。 3年前にこの問題がはっきりと理解されていたことを考えると、これまでに問題が修正されたようです。また、 StAX Cursor APIはそれまでのところ最高のパフォーマンスを発揮しました。さらに大きなファイルサイズでは非常にうまく機能していました。 –