Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et 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.

Réponse
 
Outils de la discussion
Vieux 06/02/2008, 16h26   #1 (permalink)
Invité de passage
 
Date d'inscription: avril 2005
Messages: 2
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 :
       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 :
<?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 :
<?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

Dernière modification par AlainTech ; 14/02/2008 à 08h57
sylvain77 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/02/2008, 18h22   #2 (permalink)
Responsable Excel
 
Avatar de SilkyRoad
 
Date d'inscription: août 2005
Messages: 3 113
Par défaut

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
Vieux 07/02/2008, 09h53   #3 (permalink)
Invité de passage
 
Date d'inscription: avril 2005
Messages: 2
Par défaut

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
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Général VBA

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 22h53.