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 :

Problème de récupération d'attributs [JDOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut Problème de récupération d'attributs
    Bonjour à tous,

    J'ai un petit souci quant à la récupération d'un attribut d'une balise.
    J'ai un fichier XML commencant par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <trajectorys xmlns="..." xmlns:xsi="..." xsi:schemaLocation="..." version="1.4">
    Je cherche à récupérérer la valeur de mon attribut "version".
    J'ai d'abord essayé d'afficher les namespaces, puis de récupérer l'attribut version.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("nspaces ="+r.getAdditionalNamespaces());
    System.out.println("VERSION : "+r.getAttribute("version",r.getNamespace()));
    Et voici ce que j'ai obtenu :
    nspaces =[[Namespace: prefix "xsi" is mapped to URI "http://www.w3.org/2001/XMLSchema-instance"], [Namespace: prefix "xsd" is mapped to URI "http://www.w3.org/2001/XMLSchema"]]
    VERSION : null

    Je ne sais pas du tout comment récupérer ça, et j'en ai beosin pour tester la version, est-ce que quelqu'un aurait une idée ?

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Dans la construction montrée, l'attribut version n'est dans aucune d'espace de nom - c'est ce qu'il faut entendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //System.out.println("VERSION : "+r.getAttribute("version",r.getNamespace()));
    System.out.println("VERSION : "+r.getAttribute("version").getValue());

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Merci,
    J'avais déjà essayé ça et ça me renvoie l'erreur suivante : java.lang.NullPointerException

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Aveyron (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 36
    Par défaut
    Bonjour,
    Si tu liste et affiche les Atribut de ta balise, ca t'affiche ton numéro de version?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    List<Attribute> attrs = r.getAttributes();
    for(Attribute attr:attrs){
        System.out.println(attr);
    }
    (si tu l'as pas déja fais vérifie aussi ton fichier XML pour voir si l'attribut est bien présent, on ne sais jamais.)

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Eh non, la liste des attributs est vide, c'est ça qui m'échappe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<Attribute> attrs = r.getAttributes();
    System.out.println(attrs.isEmpty());
    me renvoie true...

    Et lorsque j'affiche mon fichier xml, il affiche bien les attributs.
    Mais est-ce possible d'avoir un attribut dans une balise après les namespaces ? Peut-être que le problème vient de la malformation du fichier, non ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Aveyron (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 36
    Par défaut
    Je pense que le XML est bien formé, sinon tu aurais une exception lors de son chargement et il est possible d'avoir un attribut apres les namespaces.
    Peut tu nous montrer le code de ta fonction qui est devrai affiché ce numéro de version?

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Voici ma fonction qui affiche mon fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void afficheXML(Document document){
    		//Affichage du fichier
    		try {
    			XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    			// Affichage du fichier
    			sortie.output(document, System.out);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    Et, lorque j'essaie d'afficher les attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Document doc = new Document();
    doc = sxb.build(new File("traj.xml"));
    r = document.getRootElement();
    System.out.println("attributs : "+r.getAttributes());
    Il me renvoie :
    attributs : []

  8. #8
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    doc = sxb.build(new File("traj.xml"));
    r = document.getRootElement();
    Voyez-vous l'erreur?

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Heu non je ne vois pas d'erreur.
    Lorsque j'affiche r, il me sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [Element: <trajectorys [Namespace: http://www.witsml.org/schemas/1series]/>]

  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
    Citation Envoyé par alilili Voir le message
    Heu non je ne vois pas d'erreur.
    Lorsque j'affiche r, il me sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [Element: <trajectorys [Namespace: http://www.witsml.org/schemas/1series]/>]
    Il faudrait nous montrer ton vrai code, parce que là tu as une variable doc et une variable document. Si tu mélanges les deux ça risque pas de t'afficher quoi que ce soit.

    Il faudrait aussi qu'on voit un exemple de tout petit fichier XML, histoire de savoir où apparaît l'attribut version.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Rhoo je suis vraiment bête, effectivement je la vois l'erreur là !
    J'avais testé à la base avec un autre document non nommé pareil, that's why !

    Merci beaucoup !
    See you

  12. #12
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    doc = sxb.build(new File("traj.xml"));
    r = doc.getRootElement();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SAX] Problème de récupération d'une valeur dans un attribut d'une balise
    Par Antheadousa dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 10/01/2012, 23h29
  2. [SAX] Parsing XML - Problème de récupération d'attribut
    Par lezert dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 15/02/2011, 11h06
  3. Réponses: 4
    Dernier message: 08/04/2008, 18h11
  4. Nouveau problème de récupération de valeurs.
    Par pmboutteau dans le forum ASP
    Réponses: 4
    Dernier message: 09/03/2005, 10h48
  5. Problème de récupération de texte de formulaire
    Par bigourson dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2004, 16h27

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