[DELHPI]Utilisation TXMLDocument [Résolu]

cs_cedkat 172 Messages postés mardi 7 janvier 2003Date d'inscription 3 juin 2011 Dernière intervention - 15 avril 2005 à 09:30 - Dernière réponse : cs_cedkat 172 Messages postés mardi 7 janvier 2003Date d'inscription 3 juin 2011 Dernière intervention
- 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
Afficher la suite 

2 réponses

Répondre au sujet
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 16 avril 2005 à 09:39
+3
Utile
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.
<
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Delphiprog
cs_cedkat 172 Messages postés mardi 7 janvier 2003Date d'inscription 3 juin 2011 Dernière intervention - 18 avril 2005 à 08:30
0
Utile
Merci

CedKat
Commenter la réponse de cs_cedkat

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.