En pratique, tant pour GE que GETmp, vous mélangez les deux univers :
Vous déclarez un xmlDocument que vous ouvrez correctement et ensuite vous créez un second document XML (mais plus une variable de type XML) en recourant à la fonction XMLDocumment().
La fonction XMLDocument() attend deux paramètres principaux : le nom du document XML (qui est une chaîne et non une variable de type xmlDocument) et, optionnellement, le nom la chaîne XML qui contient le code XML à traiter.
Si le second paramètre est omis (ce qui est votre cas), la fonction crée un nouveau document XML vide (lignes 4 et 8).
Vous vous retrouvez donc avec 2 documents 'XML' de types différents :
- le premier, de type xmlDocument, contient les données que vous avez récupérées, mais après l'avoir ouvert, vous ne le travaillez plus.
- le second, de type 'chaîne XML', est vide et vous lui ajoutez des informations.
Je suppose que Windev ne lève pas d'erreur devant cette homonymie parce que les deux variables sont de types différents.
Pour finir, si j'ai bien suivi, vous écrasez le GE original avec le GE qui ne contient que les nouvelles informations, puisque c'est un nouveau document vide qui a été créé par les lignes 4 et 8.
Si vous mettez en commentaire les lignes 2,3 et 6,7, puis complétez l'appel à XMLDocument() avec le second paramètre requis, vous devriez vous y retrouver.
Mais le mieux serait de revoir votre traitement en basant tout sur les variables de type xmlDocument.
Solution préconisée par PCsoft, elle sera a priori mieux supportée à l'avenir et surtout, elle est in fine beaucoup plus simple à l'usage.
Partager