2017-05-19 18 views
1

私は、巨大なXMLファイルを解析するときに、軽量のSAXパーサーのためにメモリー重いDOMパーサーを避けるべきであると常に言われてきました。Liferayで巨大なXMLファイルをJavaで解析するには?

Liferayで巨大なXMLファイルを解析したいと考えています。このファイルは単なるアイテムのリストであり、アイテムを1つずつ個別に処理する必要があるため、SAXの完璧な使用例です。

私はLiferayのSAXReaderUtilを見つけましたが、名前に「SAX」があっても、DOMパーサーのように見えます。イベントはなく、Documentを返してXPathでノードを選択することがすべてのようです。私は間違っていますか?

Liferayモジュールを開発するときに巨大なXMLファイルを解析する正しい方法は何ですか?

+0

あなたのXMLはどれくらい大きいですか?トレードオフがあります...サックスやスタックスはコード化が難しく、機能が限定されています。 –

+0

@ vtd-xml-author:XMLファイルは数ギガバイトです。コーディングが難しいことは問題ではありません。私は多くの機能を必要としません、最初から最後まで要素を取得してください。 –

答えて

2

LiferayのXML Utilsを利用することは何もありません。あなたが質問している方法に基づいて、私はあなたがxmlとその警告を解析する経験が豊富であると仮定しています。結果として、私は、 "あなたはどこの他のようにもLiferayでそれをやっている"と思っています。

理想的には、あなたが決定しているXMLパーサ/プロセッサは、OSGiバンドルとして(またはすでにLiferayにデプロイされているものを見つける)必要があります。

+0

ありがとう!最も簡単なのは、[org.xml.sax.helpers.DefaultHandler](https://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/DefaultHandler.html)を拡張することです。これはJava 7で便利に利用できます。これにより、依存関係の追加が回避されます。 –

関連する問題