Q : La création de fichier XML grâce à MSXML nous génére des fichier "non-indentés " ainsi le résultat du script dans la
Comment créer un nouveau document XML ?
se présente ainsi (fichier test1.xml):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<Racine><element><nom>LENOM</nom><prenom>Prénom</prenom></element></Racine>
ce qui n'est pas trop lissible dans un editeur de texte standard...

le code suivant permet d'effectuer l'indentation du fichier XML :

Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
'
' Indentention d'un fichier XML.. créé par exemple par MSXML..
'
Dim xmlDoc 
Dim oStream
Dim rdr 
Dim wrt 
Set xmlDoc = CreateObject("MSXML2.DOMDOCUMENT")
set rdr = CreateObject("MSXML2.SAXXMLReader")
set wrt = CreateObject("MSXML2.MXXMLWriter")
Set oStream = CreateObject("ADODB.STREAM")
oStream.Open 'Ouverture objet stream..
xmlDoc.Load ("test1.xml") 'lit fichier xml .. Penser à rajouter des tests sur le résultat de la lecture ( fichier inexistant...)
wrt.indent = True
wrt.output = oStream ' "Connexion" de l'objet Writer à l'objet stream
Set rdr.contentHandler = wrt
Set rdr.dtdHandler = wrt
Set rdr.errorHandler = wrt
rdr.putProperty "http://xml.org/sax/properties/lexical-handler", wrt
rdr.putProperty "http://xml.org/sax/properties/declaration-handler", wrt
rdr.Parse xmlDoc
wrt.flush
oStream.SaveToFile "test2.xml", 2
'Libération des objets
Set wrt = Nothing
Set rdr = Nothing
Set oStream = Nothing
Set xmlDoc = Nothing

aprés application de ce code le fichier test2.xml .. ce présent ainsi :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Racine>
    <element>
        <nom>LENOM</nom>
        <prenom>Prénom</prenom>
    </element>
</Racine>