【Java技術点滴】——XML解析方式比較

2171 ワード

どうして?
「データのタグ付け、データ型の定義に使用できます.ユーザーが独自のタグ言語を定義できるソース言語です.アプリケーションやベンダーとは独立した構造化されたデータを記述および交換するための統合された方法を提供する、ウェブ・トランスポートに適しています.インターネット環境におけるプラットフォーム間でコンテンツに依存するテクノロジーであり、分散構造を現在処理しています情報の有効なツールです.」XMLは、データを転送および格納するために設計されている.
彼のプラットフォームの無関係性、言語の無関係性、システムの無関係性は、データの継承と相互作用に大きな便利さをもたらした.そのためXMLを使用する場所もますます一般的になってきています.
 
モード
1.DOM--DocumentObject Model
HTMLを操作するように、JSでDOMの使用を学んだことがあり、W 3 C組織が推奨する拡張可能なフラグ言語を処理する標準的なプログラミングインターフェースです.DOM解析器はXMLドキュメントをツリー構造に変換し,ツリーを巡回することができる.
利点:操作が容易で、開発者はツリーを構築する命令を呼び出すだけで、ドキュメントツリー全体がメモリにあり、navigationAPIsを利用して削除、修正、再配置など多くの機能を完了します.
欠点:ドキュメント全体をメモリにロードし、リソース(時間とスペース)を消費します.XMLドキュメントを直接一度にメモリに読み込み、解析します.ファイルが大きい場合は、読み込む内容が多く、効率が低下します.
適用の場合:一度の解析でXML文書データに何度もアクセスする必要がある;ハードウェア資源が十分(メモリ、CPU)である.
 
 
2.SAX--SimpleAPI for XML
SAXはイベントフローの解析に基づいて、XMLイベント駆動を処理するための「プッシュ」モデルであり、メディアフローに類似しており、SAX解析器はXMLを解析する際に一連のイベントを出発することができ、開発者は応答イベントコードを作成することによってデータを保存することができる.
利点:DOMが大きなファイルをロードするのにリソースがかかるという問題を解決
欠点その特徴も彼の欠点であり、複数のイベントハンドラを実現しなければ、到来したすべての時間を処理することができず、論理処理が複雑である.
 
3.JDOM--JavaDocument Object Model
その名の通り、Javaの特定のドキュメントモデルは、二八法則の原則を採用し、コード量を極めて減少させ、SAXとDOMの機能を効果的に結合している.下位層は依然としてDOM、SAXを用いて実現されている.
 
4.DOM4j
Dom 4 jは、XML、XPath、XSLTに使用される使いやすいオープンソースのライブラリです.Javaプラットフォームに適用され、Java集合フレームワークを採用し、DOM、SAX、JAXPを完全にサポートしています.
プロジェクトではDOM 4 jを適用してXMLの解析を簡単に試みたが,読み出しの一般的な手順は以下の通りである.
//SAX    
SAXReader reader = new SAXReader();
//  Thread      ,     ClassLoader,getResource...(     )     
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("      ");

Document dc = reader.read(in);
//  XPath      Element
Element driverNameElt = (Element)dc.selectObject("/config/db-info/driver-name");

まとめ
DOMとSAXは2つの比較的基本的な解析XML方式であり,他の2つはDOMとSAXのさらなるパッケージである.
ますますXMLの重要性を体得して、システムの柔軟さを達成するために、配置ファイルも本当にどこにもいないで、XMLの操作に対してまだとても熟知していないで、今日Javaの下でXMLを操作するいくつかの方式を総括して、後の学習の応用の中で更に熟練して深いことを望みます.
 
参考資料:
JAvaにおける4種類の操作(DOM,SAX,JDOM,DOM 4 J)xml方式の詳細と比較
Java解析XMLの4つの方法を詳しく理解する
JAva解析XMLのいくつかの方法
http://www.w3.org/