Bonjour.
J'utilise un composant TXMLDocument sur une fichie et ça fonctionns avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
TXMLDocument *m_xmlDoc = Form1->XMLDocument
// Ouverture et lecture du fichier XML en mode Exclusif par l'API Windows
// et chargement du TXMLDocument.
buf = lire(); // Lecture du fichier XML dans un buffer
m_xmlDoc->LoadFromXML(AnsiString(buf));
 
_di_IXMLNode cle = m_xmlDoc->DocumentElement->ChildNodes->FindNode("myNode");
Ce code fonctionne correctement.
Toutefois, je voudrais pouvoir utiliser le TXMLDocument sans la fiche avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
m_xmlDoc = new TXMLDocument("");
m_xmlDoc->DOMVendor = GetDOMVendor("MSXML");
// Ouverture et lecture du fichier XML en mode Exclusif par l'API Windows
// et chargement du TXMLDocument.
buf = lire(); // Lecture du fichier XML dans un buffer
m_xmlDoc->LoadFromXML(AnsiString(buf));
 
_di_IXMLNode cle = m_xmlDoc->DocumentElement->ChildNodes->FindNode("myNode"); // -> EAccesViolation
Et là, j'obtiens une Erreur EAccesViolation sur la dernière ligne.
J'ai essayé plusieurs trucs mais sans succès. Je ne peux pas utiliser le chargement du fichier par LoadFromFile() ou Activate = true car le fichier est ouvert en mode exclusif et donc interdit à une seconde ouverture...

Merci de votre aide.