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):
ce qui n'est pas trop lissible dans un editeur de texte standard...
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>
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>
Partager