2011-01-19 10 views
2

私はXSL変換

を使用してJavaでXMLSにXSL変換を適用する方法を認識していたjavax.xml.transform.Transformer

このアプローチは、小さなXMLに適していますデータ。しかし、メモリの制約のためにDOMベースのアプローチを使用することが難しい大規模なXMLデータに関しては、これは悪夢になります。

大規模なXMLにXSL変換を適用するための最良の方法は何ですか。 DOMではなくSAXで動作するトランスはありますか?

+0

大きなXMLを小さなチャンクに分割することを検討してください。 –

答えて

3

Javaでは、JAXPを実装するXSLTプロセッサの実装が異なります。 Saxon 9.3はXSLT 2.0プロセッサであり、XSLT 3.0の作業用ドラフトの一部のストリーミング機能も実装しています(http://www.saxonica.com/documentation/sourcedocs/streaming.xmlを参照)。 最新のSaxon 9.3の最新の機能を使用しない場合でも、通常はDOMSourceをプロセッサに供給せずに、プロセッサにStreamSourceを供給してツリー実装を使用させることをお勧めします。

+0

http://www.ling.helsinki.fi/kit/2004k/ctl257/JavaXSLT/Ch05.html –

2

巨大なXSLTで作業している場合や、複数のXSLTを使用して作業している場合は、パフォーマンスを向上させるためにxsltをコンパイルしてキャッシュするのが良い方法です。この記事では、方法を説明しますcache xslt's

関連する問題