2011-01-19 4 views
2

Je suis conscient des moyens d'appliquer la transformation XSL à XMLs en Java en utilisanttransformation xsl de grandes xmls

javax.xml.transform.Transformer

Cette approche fonctionne bien pour les petites XML Les données. Mais quand il s'agit de grandes données XML où l'approche DOM est difficile à utiliser en raison de contraintes de mémoire, cela devient un cauchemar.

Je veux savoir quelle est la meilleure approche pour appliquer la transformation XSL aux grands XML. Y a-t-il un transformateur qui fonctionne sur SAX et pas DOM?

+0

Vous pouvez envisager un grand XML se diviser en petits morceaux –

Répondre

3

Il existe différentes implémentations de processeurs XSLT dans Java qui implémentent JAXP. Saxon 9.3 est un processeur XSLT 2.0 qui implémente également certaines fonctionnalités de diffusion en continu du brouillon de travail XSLT 3.0, voir http://www.saxonica.com/documentation/sourcedocs/streaming.xml. Et même si vous n'utilisez pas les dernières fonctionnalités expérimentales de Saxon 9.3, il est généralement recommandé de ne pas envoyer de source DOMSource à votre processeur, mais laissez le processeur utiliser sa propre arborescence en alimentant un StreamSource.

+0

trouvé une bonne explication à http://www.ling.helsinki.fi/kit/2004k/ctl257/JavaXSLT/Ch05.html –

2

Si vous travaillez avec un énorme XSLT et/ou travaillez avec plusieurs XSLT, la compilation et la mise en cache du xslt est une bonne option pour améliorer les performances. Cet article explique comment cache xslt's

Questions connexes