[DELHPI]Utilisation TXMLDocument

Résolu
cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011 - 15 avril 2005 à 09:30
cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011 - 18 avril 2005 à 08:30
Bonjour,

J'ai un petit souci d'implémentation de TXMLDocument dans delphi 6.
Mon problème est que je n'arrive pas à ouvrir un document XML, il m'affiche
un mesage d'erreur "Exception externe C0000001D" alors que lors ce que je
pose le composant sur une fiche ca marche.
Je voudrait donc savoir comment instancié et initialisé le composant TXMLDocument
correctement.

Merci

CedKat

2 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
16 avril 2005 à 09:39
Après avoir posé un TXmlDocument sur ta fiche et renseigné sa propriété FileName ou XML (selon ton choix), tu doubles clique dessus et tu te laisses guider par l'assistant.
Au final, Delphi te crée une unité déclarant les interfaces nécessaires pour accéder aux noeuds de ton document XML et, juste en dessous, trois fonctions permettant respectivement :
1- D'obtenir une interface sur un document XML existant (préfixée par GET...)
2- de charger un document XML existant (Load...)
3- de créer un nouveau document XML (New...).

Dans l'unité qui a besoin d'accéder aux interfaces et classes déclarées dans la nouvelle unité, n'oublie pas de l'ajouter dans la clause Uses (ALT+F11 ou Fichier/Utiliser l'unité).

Pour accéder au document déclaré dans les propriétés FileName ou XML, tu déclares une interface et tu appelles la méthode Get... (Load... ou New..., selon tes besoins) en lui fournissant une instance de ton composant TXmlDocument. Dans l'exemple qui suit, ma méthode GetStockList renvoie une liste d'éléments du type IXmlStockListType et chaque noeud est du type IXmlStockType :

var
StockListType: IXMLStockListType;
STockType: IXmlStockType;
begin
try
    // obtenir une référence sur le document XML
    StockListType :=  GetStockList(XmlDocument1);
     for  i : = 0 to StockListType.Count - 1 do
    begin
      // on pointe sur chaque noeud du document XML
      StockType :=  StockListType.Stock[i];
      // on reconstruit une arborescence dans un TTreeView
      li := ListView1.Items.Add;
      li.Caption := StockType.Exchange;
      li.SubItems.Add(StockType.Name);
      li.SubItems.Add(StockType.Price);
      li.SubItems.Add(StockType.Currency);
      li.SubItems.Add(StockType.Symbol);
      li.SubItems.Add(IntToStr(StockType.Shares));
     end ;
  finally
    XMLDocument1.Active : = False;
  end;
Le code ci-dessus utilise quelques méthodes déclarées dans IXMLStockListType. Tu trouveras ces méthodes en parcourant la classe qui implémente l'interface créée par l'assistant XML de Delphi.

Si tu as besoin de davantage de précisions, fais le savoir.

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
<
3
cs_cedkat Messages postés 172 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 3 juin 2011
18 avril 2005 à 08:30
Merci

CedKat
0
Rejoignez-nous