Bonjour,

je n'arrive pas à utiliser correctement TXMLDocument pour lire des données XML.

Le fichier XML m'est fourni par un webservcie.J'arrive bien à le récupérer, mais je n'arrive pas à accéder aux données.

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
 
TXMLDocument* doc = new TXMLDocument("");
doc->DOMVendor = DOMVendors->Vendors[1]; //je ne saisis pas trop quel index je dois donner ici...
doc->XML->SetText(retour);//retour est correctement défini ailleurs
doc->XML->SaveToFile("tmp.xml");//j'enregistre dans un fichier pour vérifier que le code XML est bon (il l'est)
if(!doc->IsEmptyDoc())
{
	doc->Active = true;
	_di_IXMLNode racine = doc->DocumentElement->ChildNodes->GetNode(0);
	ShowMessage(racine->ChildNodes->Nodes[WideString("FIELD")]->Attributes[WideString("LOG")]);
}
else
{
     ShowMessage(doc->XML->GetText());
}
J'ai ajouté le test if(!doc->IsEmptyDoc()) sinon j'obtiens une violation d'accès sur di_IXMLNode racine = doc->DocumentElement->ChildNodes->GetNode(0);

Et donc le code passe par le ShowMessage(doc->XML->GetText()) qui m'affiche bien le contenu XML...Il est donc considéré comme vide...mais pourquoi?

Notez que je me suis inspiré du code donné par l'aide de C++ builder...

Merci d'avance.