[Xerces] Extraire des informations depuis un fichier XML
Bonjour
je suis debutant en c++ et xerces aidez moi svp.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<?xml version="1.0" encoding="utf-8"?>
<abo>
<abonnement id="85874">
<date>2009-12-13</date>
<valeur>65</valeur>
<validite>2010</validite>
</abonnement>
<abonnement id="85873">
<date>2009-11-13</date>
<valeur>62</valeur>
<validite>2010</validite>
</abonnement>
</abo> |
donc mon probleme est le suivant, sur l'exemple du fichier xml
je n'arive pas à extraire <date> <valeur> et <validite> et leur valeurs pourtant je crée la liste de noeud de <abonnement> mais quand j'affiche sa longeur ça me donne 7 je ne comprend pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| // Initialisation du Document
DOMDocument *doc = DOMparser->getDocument();
DOMElement *element = doc->getDocumentElement();
// Récupération de l'ensemble des noeuds "abonnement"
const XMLCh* XMLabo = XMLString::transcode("abonnement");
DOMNodeList *ListeNoeud = element->getElementsByTagName(XMLabo);
for (int i=0; i < ListeNoeud->getLength(); i++) // boucle sur l'ensemble des noeuds
{
DOMNodeList *ListeNoeudFils=ListeNoeud->item(i)->getChildNodes();
cout<< "nb noeud fils " <<ListeNoeudFils->getLength()<<endl;
// suite du traitement
} |
je ne comprend pas pourquoi la liste des noeuds contient 7 elements
et pour extraire <valeur> et sa valeur je doit faire ça:
ListeNoeudFils->item(0)->getNodeName()
ou ListeNoeudFils->item(0)->getFirstChild()->getNodeName()
et pour la valeur:
ListeNoeudFils->item(0)->getNodeValue()
ou ListeNoeudFils->item(0)->getFirstChild()->getNodeValue()
merci d'avance.