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

XML Discussion :

[Xerces] Nœuds enfants inaccessibles


Sujet :

XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 65
    Points : 58
    Points
    58
    Par défaut [Xerces] Nœuds enfants inaccessibles
    Bonjour à tous,

    j'ai un souci pour lire un document xml avec xerces C++.

    J'ai un fichier xml de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <Employee type="permanent">
            <Name>Seagull</Name>
            <Id>3674</Id>
            <Age>34</Age>
       </Employee>
    avec plusieurs balises employee. Je cherche maintenant à lire les sous-balises Name, Id et Age

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    DOMNodeList* aNodeList = myDocument->getElementsByTagName(XMLString::transcode("Employee"));
    	DOMNodeList* aNodeChildList;
     
    	char* pParentNode;
    	char* pChildNode = new char[4];
    	char* pAttribute;
     
    	int j;
     
    	if(aNodeList != NULL && aNodeList->getLength() > 0) 
    	{
    	  for(int i = 0 ; i < aNodeList->getLength();i++)
              {
    	    xmlpName = (XMLCh*)aNodeList->item(i)->getNodeName();
    	    XMLString::transcode(xmlpName,pParentNode,20);
    		cout<<i<<" "<<pParentNode<<" ";
     
    	    if (aNodeList->item(i)->hasChildNodes())
    		  cout<<"Il y a des noeuds enfants\n";
     
    	    aNodeChildList = aNodeList->item(i)->getChildNodes();
    	    xmlpName = (XMLCh*)aNodeChildList->item(i)->getNodeName();
    	    XMLString::transcode(xmlpName,pParentNode,20);
    		cout<<i<<" "<<pChildNode<<" ";
                }
            }
    La fonction hasChildNodes() me renvoie bien un true. Cependant quand je fais un getNodeName sur le noeud aNodeChildList->item(i), il me renvoie un truc bizarre :
    #test
    Voilà ce qu'il me renvoie.

    Quelqu'un aurait il une idée ?

    Je vous remercie.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 65
    Points : 58
    Points
    58
    Par défaut
    J'ai résolu mon problème. Il faut utiliser judicieusement la commande GetNodeType, car la fonction item ne pointe pas forcément sur une balise définie dans le xml (il renvoie des fois des #test ou autre...)

    Cordialement.

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

Discussions similaires

  1. [DOM] [Xerces] Insertion d'une entité
    Par Traroth dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/05/2008, 09h28
  2. Réponses: 4
    Dernier message: 08/08/2007, 16h12
  3. Problème à l'édition des liens avec BCC55 et Xerces
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/11/2003, 14h50
  4. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18
  5. [MDI] comment fermer la bonne fenêtre enfant ?
    Par KThrax dans le forum Langage
    Réponses: 5
    Dernier message: 01/09/2002, 09h42

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