IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Meilleur API XML pour Java


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut Meilleur API XML pour Java
    j'ai commence a utiliser JDOM pour sa simplicite, mais au detour d'un article, je suis tombe sur DOM4J que j'ai trouver encore
    plus facile a utiliser.

    Et vous q'en pensez vous ??

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Personnellement je trouve DOM4J à peine moins compliqué que le DOM fourni avec Java, c'est-à-dire bien trop verbeux en pratique.
    Mais le but est effectivement de choisir ce qui est le plus simple pour ce qu'on a besoin de faire, alors si tu as trouvé un moyen d'utiliser DOM4J qui te convient mieux que JDOM, ne te gêne pas.

    ('Fin bon, je dis ça, mais je suis persuadé que tu te trompes. Si tu nous montrais ce que tu fais avec DOM4J, et comment tu fais la même chose avec JDOM et qui te semble plus compliquée, je pourrais t'expliquer où est ton erreur... Ou m'avouer vaincu, selon les cas.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    voila comment on creer une arborescence en JDom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Element etudiant = new Element("etudiant");
     racine.addContent(etudiant);
     
     Attribute classe = new Attribute("classe","P2");
     etudiant.setAttribute(classe);        
     
     Element nom = new Element("nom");
     nom.setText("CynO");
     etudiant.addContent(nom);
    ca fait 3 variables qui ne serviront qu'un seule fois. si je veux créer un autre node ou propriété je serais oblige de créer une autre variable. et je trouve ca lourd

    Pourtant avec dom4j ca aurais donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Etudiant = root.addElement("Etudiants");
    livre.addElement("nom").addText("etudiant 1");
    livre.addElement("prenom").addText("prenom 1");
    livre.addElement("classe").addText("classe 1");
    je trouve la syntaxe de dom4j plus facile et moin gourmande en variable que JDom. et ca se rapproche plus du concept je pense.

  4. #4
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Que souhaites tu faire avec tes fichiers XML? Lecture? Création? Modification?...

    J'utilise fréquemment XStream qui est facile à prendre en main et par un jeu d'annotations me permet de gagner énormément de temps.

    Billy

  5. #5
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Citation Envoyé par billynirvana Voir le message
    Que souhaites tu faire avec tes fichiers XML? Lecture? Création? Modification?...
    humm en fait tout. j'ai des données venant d'une BD, je creer un fichier XML et transforme avec un xslt (model).

    voila en gros

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Vaincu je m'avoue.

    Je n'ai sans doute pas assez bûché DOM4J depuis que j'ai fait des progrès en XML. Ça, et puis, ce qui me dérangeait avant, c'était pas le côté écrire, mais le côté lire. Mais je vois qu'il y a du XPath.
    Il y avait aussi le fait qu'on trouve plus facilement comment lire un fichier XML et écrire un fichier XML avec JDOM, mais c'est un peu faible, comme argument.

    Notons quand même :
    - Tu ne construis pas le même document XML avec JDOM ou DOM4J. Why ? Tu étais supposé comparer les deux.
    - Il est inutile de construire des Attribute en JDOM. setAttribute(String, String) est très bien. Cette classe n'est pas spécialement utile, en fait, sauf pour la complétude du modèle.
    - Je me doute bien que c'est pour les besoins de l'exemple, mais précisons quelle est la manière correcte de faire cet exemple :

    fichier data.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <root>
      <Etudiants>
        <etudiant classe="P2">
          <nom>etudiant 1</nom>
          <prenom>prenom 1</prenom>
        </etudiant>
      </Etudiants>
    </root>
    ou bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <root>
      <Etudiants>
        <etudiant>
          <nom>etudiant 1</nom>
          <prenom>prenom 1</prenom>
          <classe>P2</classe>
        </etudiant>
      </Etudiants>
    </root>
    Et fichier DataReader.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // blahblah
     
    Document readData(File dataFile) throws IOException, JDOMException {
      // dataFile est vers data.xml
      SAXBuilder builder = new SAXBuilder();
      return builder.build(dataFile);
    }
     
    // blahblah
    Ou la même chose avec DOM4J
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    a moin de me tromper

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Document readData(File dataFile) throws IOException, JDOMException {
      // dataFile est vers data.xml
      SAXReader xmlReader = new SAXReader();
      document = xmlReader.read("dataFile");
     
      return document;
    }

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, ça marcherait si le fichier était garanti être dans le répertoire courant et s'appeler dataFile. Après, tout dépend jusqu'à quel point on veut être flexible.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    J'ai rien contre JDom, mais j'ai une tres courte experience avec xml et java (moins de 48h).

    Mais je voudrais pouvoir utiliser une API qui va me permettre d'aller tres vite.

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Vu que tu construis des documents, alors que moi j'ai plutôt tendance à les lire ou les transformer, il semble que finalement mon avis ne vaille pas grand-chose .

    Mais quand tu as dit qu'en JDOM, pour créer un document il faut faire plein de variables, et c'est plus lourd qu'en DOM4J, ça m'a l'air vrai. Je n'avais juste pas remarqué.
    A priori il y a des chances que ça te convienne mieux.

    Vu les besoins que tu décris, le passage "données récupérées -> XML" me semble être une opération de sérialisation. Ce qui se fait, en effet, mieux avec des choses comme XStream... Une fois qu'on la connaît bien. J'ignore si le XML ainsi obtenu est facile à intégrer ensuite à de la transformation XSLT.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    en fait la partie la plus important est la transformation du par le model (xslt).

    je pensais au début partir d'une DTD pour créer un fichier (ou document) xml a partir des données de la BD et ensuite transformer a partir du xslt. Voila en gros ce que je voudrais faire. et que je fais en partie avec JDom (et dans une moindre mesure avec dom4j).

Discussions similaires

  1. [Avis] Quelles sont les meilleures API et outils Java ?
    Par Mickael Baron dans le forum API standards et tierces
    Réponses: 33
    Dernier message: 08/06/2011, 14h39
  2. api XML pour le C ?
    Par bit_o dans le forum XML
    Réponses: 4
    Dernier message: 17/10/2007, 14h35
  3. API SMIL pour Java
    Par Danyboy11 dans le forum Multimédia
    Réponses: 2
    Dernier message: 20/04/2007, 08h53
  4. [API] COM pour java
    Par JFDelges dans le forum Général Java
    Réponses: 4
    Dernier message: 15/03/2006, 10h16
  5. [Windows]Api win32 pour java
    Par cpanette dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 27/06/2005, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo