Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2008, 16h26   #1
Invité de passage
 
Inscription : avril 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 5
Points : 0
Points : 0
Par défaut XML, VBA et encodage

Bonjour,
Je cree un XML a partir d'une feuille excel en VBA.
En voici un echantillon
Code :
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 :
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 :
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
sylvain77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 18h22   #2
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonsoir

j'espere que cet exemple Excel pourra t'aider :
http://excel.developpez.com/faq/?pag...LplageCellules


bonne soirée
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 09h53   #3
Invité de passage
 
Inscription : avril 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 5
Points : 0
Points : 0
Merci de votre reponse

Le probleme est que l'application est deja developpe selon le modele FSO, write line dont je vous ai parle. Je ne me vois pas tout redevelopper en suivant la logique MSXML meme si cela semble performant.

Comment serai t'il possible de forcer l'encodage afin que les caracteres speciaux soient correctement gere et ne soient exploitables directement via la methode load de MSXML2.DOMDocument ou des editeurs XML.

Merci d'avance

Sylvain
sylvain77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h49.


 
 
 
 
Partenaires

Hébergement Web