質問

私は失われた少しを取得していますすべての私は、彼らが...

関連方法を見てはいけないことのjava、XPathの、サックス、DOM、のDocumentBuilderFactory ...別の話題の言葉でメソッドを扱うXML

1)私は推測していますので、私の質問です いずれかのJava 6でXMLを扱うの良いチュートリアルを知っている?私はいくつか発見したが、彼らは古いように見える。

それを行うための最善の方法は何であるか

2)私は異なるノードそれを認識し、そこからデータを取ることができるように意味、XMLツリーをトラバースする必要があり、?

感謝

いずれかのリンクをいただければ幸いです。

役に立ちましたか?

解決

いくつかの異なるXML技術は、それらのすべてが基本的に(XMLツリーへのアクセスのいくつかの方法を提供する)同じことをやって、Javaでありますが、ほとんどの異なる方法でそれらのすべて。

オリジナル技術、SAXは、ストリーミングXMLプロセッサです。単純に、あなたはパーサを起動し、それがさまざまなXML要素に遭遇すると、パーサは、あなたのコードにしてコールバックを行います。ここで重要なのは、それはあなたのXML要素、XML要素を処理していないことです。新しいXML要素(任意のXML要素)、またはテキストのブロックではなく、ORDER要素、またはITEM要素を参照してくださいに起こっているときである。つまり、それはあなたを教えてくれます。 SAXはちょうどトークンレベルより上でXMLを見て、それが実際にその木からメモリ表現に構築するためにあなたのプログラムまでです。

次のアップ、DOMです。ドメインオブジェクトモデル。これは、Web開発者にはおなじみの手法です。他のノードへのノードとポインタの組み合わせ - それはSAXとは異なり、それはメモリモデルへの参照を返し、メモリの中にXML文書全体を消費することから始まります。あなたは容易にあなたの情報を見つけるために、DOMツリーを歩くことができるが、それは一般的なモデルです。 DOMモデルの利点は、単一形式の文書全体を得るかということです。欠点は、あなたが、よく、単一の形で文書全体を取得することです。小さなドキュメントのためではなく、巨大なもののために良いので、それの素敵ます。

もちろん、それはすべてあなたがドキュメントから欲しいものに依存します。あなたが本当に文書からの情報のすべてを必要とする場合は、同様にメモリに全体の事をロードすることがあります。あなたはサブセットのみが必要な場合は、ストリーミングプロセッサは、特に大規模な文書のために、よりよい解決策かもしれません。

は、あまりにもの組み合わせは、XML文書をストリーミングに基本的に、ビューのような「DOM」を与えるのStAXと呼ばれる技術が、あります。これが意味することは非常にあなたのようなXMLドキュメントと協力できることをDOMドキュメントうが、パーサが遅延し、理想的に低く、全体的なメモリの影響を与える可能性が取り出したいという情報を、アップロードします。それは技術上の2の組み合わせですので。

DOMとStAXの両方について、「XPathの」と呼ばれるデータにアクセスするために利用できる技術があります。 XPathはあなたの個々の要素へのアクセスを与えるためにクエリ言語ですが、宣言的な方法インチあなたは、あなたのハードディスク上のファイル名のパスを検討するのと同じ方法でのXPathを検討することができます。 XPathのがなければ、あなたはに取得し、あなたの情報を抽出するために、XML文書のルート、および「クロール」ツリーで起動する必要があります。 XPathは、あなたのため、このプロセスを抽象化し、それはあなたがより大きな文書のサブセット後にしている場合は特に、多くのXML文書のノイズの回避を支援することができます。

最後に、Javaを使用し、XMLバインディング技術である「JAXB」と呼ばれる技術が、そこにあります。これは、XMLにしてからJavaクラスをマップするために使用されます。あなたは、XMLドキュメントでシステムをポイントして、あなたが戻ってJavaクラスを取得します。それとも、あなたはシステムでのJavaクラスのインスタンスを指し、そしてあなたは、XMLを取り戻すことができます。基本的な例については、私は、Javaクラスと結果のXMLの両方を管理している場合は特に、非常に使いやすいJAXBを見つけます。また、そこにJAXBと同様のシステムを結合他、サードパーティ製のXMLがありますが、JAXBは、Java 6が付属しています。

あなたが必要として、その一つに

、本当にあなた次第です。

それは実際に使用する痛みのビットだとして

ほとんどの人々は、今日SAXを避けます。これは、高速だし、安いが、プログラマーとして時間がかかる可能性があります。

DOMとXPathは、それが現代のWebページのプログラミングとどのブラウザがXMLで作業に似て、特にのため、おそらく今日の最も一般的な技術です。あなたは小さな文書を持っている場合(以下50-100K)、そしてあなただけのデータのサブセットを必要とする場合は特に、DOMとXPathを使用することに非常に可能であり、かつ簡単です。

あなたが1つのより高いレベルでの作業、およびドキュメント全体を使用する必要があるだけでなく、読み取りと書き込みXMLを、計画している場合は、

その後、JAXBは、対象とすることができます。私の唯一の懸念は、クラスに古いXML文書をマッピングすることであるということですもう少し複雑な、そしてあなたはそれをやろうとしている初期の成功を取得できない場合があります。

これらのすべてが利用できる良いガイドを持っている、と私はリンクを提供することはありません。むしろあなたが最良のあなたの用途に合わせて、そこから行くだろうと思うことを、特定のXML技術に焦点を当て、このガイドを使用することができます。

他のヒント

  それは実際に使用する痛みのビットだとして

ほとんどの人々は、今日SAXを避けます。   これは、高速だし、安いが、プログラマーとして時間がかかる可能性があります。

http://code.google.com/p/jlibs/wiki/SAX2JavaBinding

任意の複雑させずにサックスの電源を使用する方法。上記URLが示す

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top