lundi 20 juillet 2009

JDOM vs DOM et SAX

La librairie JDOM a l'inconvénient majeur de ne pas être présente dans les APIs JAVA et de ne pas être une norme W3C. Pourtant, même si elle ne propose aucune révolution théorique, cette librairie est plus pratique à utiliser que ses consors SAX et DOM. En faits, SAX et DOM ont été développés pour couvrir être implémenté en C et C++ notamment, JDOM n'ayant pas ses limitations peut se permettre d'être plus intelligente.

Cette API est très sympathique car elle se sert des fonctionnalités de JAVA pour ne plus avoir en tête les considération de consommation de mémoire qui sont souvent problématique dans le cas des fichiers XML. Les performances s'apparentent à celle du SAX et la souplesse est proche du DOM.

Elle possède des fonctionnalités qui s'apparente à XPath (mais en plus simple). JDOM peut-être utilisé pour des transformations de noeuds non prises en compte trivialement par XSL (Déplacements de noeuds, clonages, modification de structure hiérarchiques)

Et pour ceux qui doutent encore, il a été décidé que JDOM sera intégré au futures JDK.
Alors lancez vous !

Exemple de parsing :


SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(xslIs);


Exemple de sérialisation :

XMLOutputter xmlOutputter = new XMLOutputter();
xmlOutputter.output(doc, fos);


Exemple de sérialisation :

XMLOutputter xmlOutputter = new XMLOutputter();
xmlOutputter.output(doc, fos);


Exemple de copie de noeud :

Element cloneElement = (Element) originalElement.clone();
parentElement.addContent(cloneElement);


C'est souvent beaucoup plus simple que XSL dans le cas de transformations complexes !

1 commentaire:

Anonyme a dit…

you might also want to investigate vtd-xml which is better and more advanced than DOM or SAX

http://vtd-xml.sf.net