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 avec getChild [DOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut Problème avec getChild
    Bonjour,

    j'ai un fichier xml comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <Exemple xmlns ="adresse">
    <Group>
    <sousGroup>
    ...
    </sousGroup>
    <sousGroup>
    ...
    </sousGroup>
    </Group>
    </Exemple>
    Je cherche a obtenir tout les sous groupes, pour cela j'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Element group = racine.getChild("Group");
    List<Element> liste = group.getChildren("sousGroup");
    Iterator<Element> iterator = liste.iterator;
    Le problème est que group vaut null dans ce cas de configuration. Pour que calà marche je dois créer la balise groupe ainsi: <Groupe xmlns = "">

    Merci d'avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Ben oui. Si ton document utilise le namespace "adresse" par défaut, il faut indiquer ce namespace quand tu donnes un nom d'élément à sélectionner.

    Un nom d'élément sans namespace, c'est pour demander un élément qui n'a pas de namespace (ce qu'on obtient en déclarant xmlns="" ou en ne déclarant rien du tout.)

    Bref, tu dois d'abord te construire un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Namespace namespace = new Namespace("adresse");
    Et ensuite faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Element group = racine.getChild("Group", namespace);
    List<Element> liste = group.getChildren("sousGroup", namespace);
    Iterator<Element> iterator = liste.iterator();
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut
    Effectivement,

    je ne comprend pas vraiment pourquoi ça marchait avec la balise <Groupe xmlns = ""> mais merci

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par Jehuty57 Voir le message
    Effectivement,

    je ne comprend pas vraiment pourquoi ça marchait avec la balise <Groupe xmlns = ""> mais merci
    Comme je l'ai dit, xmlns="" est la même chose que ne rien mettre du tout*, ça signifie que les éléments n'ont pas de namespace. Du coup, si tu mets ça (ou rien) et que ton programme demande des éléments qui n'ont pas de namespace, ça marche.


    * (En réalité, xmlns="" n'est pas exactement la même chose que ne rien mettre du tout : ça enlève le namespace par défaut, s'il y en avait un déclaré dans un élément parent.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 35
    Par défaut
    bonjour,
    je voudrais savoir c'est quoi un namespace ?!!
    apparemment j'ai le même problème et je crois que moi aussi je ne le déclare pas parceque il m'affiche les nulls en exécutant
    au plaisir de vous lire

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    - La FAQ : Qu'est-ce qu'un espace de nom ?
    - Google : xml namespace (ignorer les 3 premiers résultats, chercher une explication au lieu d'une spécification.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [JDOM] problème avec getChild
    Par charpaton dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 28/11/2006, 08h43
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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