IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Sommaire > Flux, fichiers et réseaux > XML
        Exemple de parsing XML avec SAX
        Exemple de création d'un bean Java à partir d'un XML avec SAX
        Exemple de gestion d'erreurs lors d'un parsing SAX
        Exemple de lecture d'un fichier XML avec DOM
        Exemple d'extraction d'informations sur un DOM
        Extraction des liens d'un XHTML avec l'API DOM
        Exemple de création d'un DOM
        Création d'un fichier XML avec SAX et XSLT
        Création d'un HTML à partir d'un XML avec XSLT
        Création d'un PDF avec FOP
        Création et lecture d'un arbre DOM
        Enregistrer des objets en XML : Sérialisation JavaBeans
        Exemple XPath
        Récupération d'un NodeSet avec XPath
        Récupération d'un Node avec XPath
        Récupération d'un Boolean avec XPath
        Récupération d'un String avec XPath
        Récupération d'un Number avec XPath
        XPathUtils

        


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Exemple de parsing XML avec SAX
Exemple simple de configuration d'un parseur SAX pour lire un fichier XML.


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Exemple de création d'un bean Java à partir d'un XML avec SAX
Exemple de création d'un bean Java (Personne) à partir d'un XML avec SAX (grâce à un handler spécialisé : PersoneHandler).


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Exemple de gestion d'erreurs lors d'un parsing SAX
Exemple de gestion d'erreurs lors d'un parsing SAX, grâce à un ErrorHandler.


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Exemple de lecture d'un fichier XML avec DOM
Exemple simple de lecture d'un fichier XML avec L'API DOM


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Exemple d'extraction d'informations sur un DOM
Exemple d'extraction d'informations sur un DOM : version XML, encoding, configuration DOM, etc..


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Extraction des liens d'un XHTML avec l'API DOM
Extraction des liens d'un XHTML valide avec l'API DOM.


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Exemple de création d'un DOM
Exemple de création de toutes pièces d'un DOM et sauvegarde sous forme de fichier XML avec XSLT.


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Création d'un fichier XML avec SAX et XSLT
Exemple de création d'un fichier XML avec l'API SAX et XSLT.


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Création d'un HTML à partir d'un XML avec XSLT
Exemple de création d'un HTML à partir d'un fichier XML avec XSLT


Auteur : Vedaer
Version : 15/01/2005
Téléchargez le zip
Création d'un PDF avec FOP
Exemple de création d'un fichier PDF, à partir d'un fichier XML, avec FOP


Auteur : iubito
Version : 15/01/2005
Création et lecture d'un arbre DOM
Résumé de la structure voulue : une structure comme un document XML, avec des noeuds (Node) qui ont des propriétés, qui peuvent avoir des enfants, profondeur et nombre d'enfants illimités.

On utilise org.w3c.dom.*.

Node est une interface.
Element est une autre interface, Node est une superinterface de Element.
Un Element possède des attributs (concrètement : les attributs dans un fichier XML)

Le code pour créer l'arborescence.

import org.w3c.dom.*; //Les 5 import suivants si on veut exporter en XML... import javax.xml.transform.*; import javax.xml.transform.stream.*; import javax.xml.transform.dom.*; import javax.xml.parsers.*; import java.io.*; public class Test { public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.newDocument(); //crée un Node racine Node racine = document.createElement("Racine"); //et l'ajoute au document... document.appendChild(racine); //Maintenant on ajout noeud1 à la racine Node noeud1 = ajoutNoeud(racine,"aaa", "1er noeud"); //et un fils à noeud1 ajoutNoeud(noeud1,"bbb", "Enfant du 1er noeud"); //Un 2e noeud à la racine Node noeud2 = ajoutNoeud(racine,"ccc", "2e noeud"); //Avec 2 fils... ajoutNoeud(noeud2,"ddd", "Ainé du 2e noeud"); ajoutNoeud(noeud2,"eee", "Cadet du 2e noeud"); ajoutNoeud(noeud2,"fff", "Dernier enfant du 2e noeud"); //Pour transformer en XML, ça permet de voir si le document est bien construit TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.transform(new DOMSource(document),new StreamResult(new File("toto.xml"))); // //Pour parcourir le document et l'afficher System.out.println(affichage(document.getFirstChild(), 0)); } public static Node ajoutNoeud(Node parent, String valeur1, String valeur2) { Element element = parent.getOwnerDocument().createElement("Noeud"); element.setAttribute("code",valeur1); element.setAttribute("texte",valeur2); parent.appendChild(element); return element; } /** * Parcours par récurrence le noeud N, pour afficher ou faire tout autre * traitement sur l'arborescence * @param Node N le noeud à afficher * @param int profondeur pour connaître la profondeur où on est */ public static String affichage(Node N, int profondeur) { String ret = ""; Node fils; if (N != null) { if (N.hasChildNodes()) { //Premier enfant fils = N.getFirstChild(); while (fils != null) { //ici le traitement spécifique ret += "\n"; for (int i = 0; i <= profondeur; i++) ret += "\t"; //Pour récupérer la valeur d'un attribut : ret += ((Element)fils).getAttribute("code") + " " + ((Element)fils).getAttribute("texte"); //récurrence : affiche les enfants de fils. ret += affichage(fils, profondeur + 1); //Passe au frère suivant fils = fils.getNextSibling(); } } } return ret; } }
Le XML obtenu est :

<?xml version="1.0" encoding="UTF-8"?> <Racine> <Noeud code="aaa" texte="1er noeud"> <Noeud code="bbb" texte="Enfant du 1er noeud"/> </Noeud> <Noeud code="ccc" texte="2e noeud"> <Noeud code="ddd" texte="Ainé du 2e noeud"/> <Noeud code="eee" texte="Cadet du 2e noeud"/> <Noeud code="fff" texte="Dernier enfant du 2e noeud"/> </Noeud> </Racine>
La fonction affichage retourne :

aaa 1er noeud bbb Enfant du 1er noeud ccc 2e noeud ddd Ainé du 2e noeud eee Cadet du 2e noeud fff Dernier enfant du 2e noeud

Auteur : Julien CHABLE
Version : 15/01/2005
Téléchargez le zip
Enregistrer des objets en XML : Sérialisation JavaBeans
Pour tout ceux qui se demandaient si on pouvait enregistrer des objets en XML sans passer par le format binaire de sérialisation habituel, voici une petite source qui va vous permettre de le faire ! Attention, la sérialisation XML n'est pas tout à fait l'équivalent de la sérialisation binaire utilisée par beaucoup de mécanismes Java, tout cela est précisé dans les sources. Avec la sérialisation XML (-> JavaBeans) vous ne pouvez pas faire autant qu'avec la sérialisation habituelle, le seul avantage : le fichier de sortie est lisible ...
Enjoy it !
@+


Auteur : Vedaer
Version : 15/02/2005
Téléchargez le zip
Exemple XPath
Exemple simple d'utilisation du package javax.xml.xpath.


Auteur : Vedaer
Version : 15/02/2005
Téléchargez le zip
Récupération d'un NodeSet avec XPath
Exemple de récupération d'un NodeSet (NodeList) avec XPath. Cet exemple se "connecte" au flux RSS du blog de developpez.com pour en récupérer les titres des articles publiés.


Auteur : Vedaer
Version : 15/02/2005
Téléchargez le zip
Récupération d'un Node avec XPath
Exemple de récupération d'un Node unique avec XPath. Cet exemple se "conecte" au flux RSS du blog de develoçppez.com pour récupérer le titre du dernier article publié.


Auteur : Vedaer
Version : 15/02/2005
Téléchargez le zip
Récupération d'un Boolean avec XPath
Exemple de récupération d'un booléen à partir d'une expression XPath. L'exemple se connecte au flux RSS publié par le blog de developpez;com puis indique si le dernier article publié appartient à la rubrique Java.


Auteur : Vedaer
Version : 15/02/2005
Téléchargez le zip
Récupération d'un String avec XPath
Exemple de récupération d'une chaîne de caractères à partir d'une expression XPath. L'exemple se connecte au flux RSS publié par le blog de developpez.com, récupère le contenu du dernier article publié et l'affiche dans une JTextPane.


Auteur : Vedaer
Version : 15/02/2005
Téléchargez le zip
Récupération d'un Number avec XPath
Exemple e récupération d'n nombre à partir d'une expression XPath. L'exemple se connecte au flux RSS publié par le blog de developpez.com et compte le nombre d'articles parlant de J2EE dans la rubrique Java.


Auteur : GrandFather
Version : 11/06/2005
Téléchargez le zip
XPathUtils
XPathUtils est une petite classe utilitaire contenant une seule méthode publique statique getXPath(). Cette méthode renvoie une chaîne contenant une expression XPath permettant d'accéder au noeud passé en paramètre, en partant de la racine de l'arbre DOM. Le noeud passé en paramètre peut être un élément, un attribut, un commentaire, un noeud texte ou la racine du document.


        

Tous les codes sources fournis gratuitement ici sont soumis à la licence GNU LGPL traduite en français ici. Par contre, la page de présentation constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2004 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.