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 :

Récupération des entities externes


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut Récupération des entities externes
    Bonjour, je suis actuellement bloqué sur un petit problème.

    j'ai un fichier xml que je parse avec JDOM (Sax) et j'ai dans celui-ci des entitées externes.

    Un élément de mon fichier xml
    <monelement attribut1="monentite1">

    L'entitée corespondante dans la dtd associée
    <!ENTITY monentité1_001 "Je suis l'entity 1">

    J'aimerai quand je récupère mon attribut, pouvoir ensuite connaître la valeur de son entité.

    En gros j'aimerai récupérer en chaine de caractère "monentite1" et "Je suis l'entitiy1".

    Car pour le moment soit je formate mon xml en rajoutant &monentite1; et donc le parseur fait la transformation directement et je n'ai plus le champ "monentitie1" soit je laisse comme cela est et je n'arrive pas à récupérer la valeur de l'entité.

    Comment récupérer donc un tableau contenant mes entités, ou alors tout simplement les deux champs.

    Merci beaucoup d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 110
    Par défaut
    J'ai ce problème de substitution des références vers les entités qui ne se fait pas non plus. Le sujet m'intéresse fortement !!


  3. #3
    Membre expérimenté

    Avatar de mlny84
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4 023
    Par défaut
    Bonjour,

    Je n'ai peut être pas très bien compris ce que tu cherchais à faire.
    Mais si tu as un XML du type :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <info>
    <subject>
    <topicname code="c02982">Antiquité romaine</topicname>
    </subject>
    <subject>
    <topicname code="c03170">Protohistoire</topicname>
    </subject>
    </info>
    Et que tu veux récupérer la valeur des l'attributs code, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    List noeudCodes = racine.selectNodes("child::*[local-name(.)='info']/child::*[local-name(.)='subject']/child::*[local-name(.)='topicname']/@code");
    String[] codes = new String[noeudCodes.size()];
    for(int i=0; i<codes.length; i++) {
    	codes[i] = ((Node)noeudCodes.get(i)).valueOf("normalize-space(.)");
    }
    Et là tout tes codes sont contenus dans la variable "codes".

    Au passage, si le code que je t'ai donné fonctionne pour toi, peux-tu me dire si tu as des problèmes pour récupérer les valeurs si ton fichier XML contient des accents? (Car j'ai quelques problèmes avec les accents, cf mon post )

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 110
    Par défaut
    Pour les accents suffit de préciser l'encodage UTF-8 en entête de ton XML, ensuite les parser/builder comprennent tout seul .
    Moi mon problème c'est lorsque je référence une entité avec &newline par exemple dans le doc. XML, l'entité étant déclarée en haut du fichier XML dans la DTD interne.
    Mais j'ai trouvé l'origine de mon problème (cf. mon post résolu).

  5. #5
    Membre expérimenté

    Avatar de mlny84
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4 023
    Par défaut
    Citation Envoyé par kroax Voir le message
    Pour les accents suffit de préciser l'encodage UTF-8 en entête de ton XML, ensuite les parser/builder comprennent tout seul .
    Justement, malgré cette précision,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="UTF-8" ?>
    j'ai quand même des problèmes avec les accents...

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonjour

    Si tu veux gérer les accents francais, et la manière dont est écrit le fichier, ce n'est utf-8 qu'il faut utiliser mais ISO-8859-1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    Pour ce qui est de la gestion des entités, il faut peut être passer par l'EntityResolver du parseur XML.

    Cdlt

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/01/2013, 17h55
  2. récupération des coordonée d'une interface d'application externe
    Par midoom dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 15/02/2010, 13h08
  3. [disque dur externe] Récupération des données
    Par linda8080 dans le forum Composants
    Réponses: 6
    Dernier message: 30/08/2008, 12h39
  4. Réponses: 4
    Dernier message: 11/01/2008, 11h26
  5. Réponses: 2
    Dernier message: 27/10/2006, 17h07

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