Bonjour,
Je cree un XML a partir d'une feuille excel en VBA.
En voici un echantillon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
       Set fso = New Scripting.FileSystemObject
       Set tf2 = fso.CreateTextFile("c:\text.xml", true, true)
       tf.writeline ("<?xml version='1.0' encoding='UTF-8'?>")
       tf.writeline ("<myRoot>")
       tf.writeline ("<DataEntry>")
       tf.writeline ("<editor>c'est moi l'éditeur</editor>")     
       tf.writeline ("</DataEntry>")
       tf.writeline ("</myRoot>")
       tf.Close
Le fichier se cree bien, pas de souci de ce cote. Mais lorsque j'essaye de le parser dans mon application ou juste de le charger dans un document MSXML via
Dim xml As New MSXML2.DOMDocument
xml.Load ("c:\text.xml")
Cela ne fonctionne pas.

Apres de multiples tests, je me suis rendu compte que cela est du a la presence des caracteres speciaux é, ' .
Pour que le fichier soit exploitable, il faut "juste" que je l'ouvre dans un editeur XML genre XMLSpy ou oxygen et que je le sauve pour que tout soit dans le bon format ce qui n'est pas vraiment commode...

Par exemple, mon XML ressemblant a ca dans UltraEdit:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?xml version='1.0' encoding='UTF-8'?>
<myRoot>
	<DataEntry>
	     <editor>c'est moi l'éditeur</editor>
	</DataEntry>
</myRoot>
devient ceci dans UE apres avoir ete sauve dans XMLSpy:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?xml version='1.0' encoding='UTF-8'?>
<myRoot>
	<DataEntry>
	     <editor>c'est moi l'éditeur</editor>
	</DataEntry>
</myRoot>

Il semble que les caracteres dans le fichier XML fraichement cree meme si visuellement, cela semble correct, ne sont pas valides pour etre dans un XML...

Connaissez vous un moyen de faire par la programmation VBA que ce fichier texte que je cree soit dans le bon encodage pour pouvoir ensuite l'exploiter dans des parser XSL, le charger dans un objet XML?

Merci d'avance de votre aide, je commence a devenir fou..

Sylvain