doc sur PARSER XML et MSXML 4.0

  • Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Creepy

XLDnaute Accro
Bonjour à tous,

Ce petit mot pour vous poser une question depuis le boulot puisque je n'aurais pas de Noos avant lundi prochain.

Je vais devoir gérer des fichiers XML de facon intensive. Je voudrais savoir si vous connaissez un bon site sur les parser XML et notament je pensais m'appuyer sur la librairie MSXML4.DLL si vous aviez un ou des liens avec sur les commandes et parametres pour exploiter cette DLL

Merci d'avance

Bonne soirée et à demain

@+

creepy
 
Salut Creepy,

Je me suis trouvé dans le même cas que toi il y a quelques jours alors j'ai fait quelques recherches sur le net et un site est particulèrement intéressant sur le DOM XML de Microsoft :
Ce lien n'existe plus

Il ne parle malheureusement pas de VBA (pas trop étonnant non plus...) Mais bon, je suis arrivé à écrire le code suivant pour charger en mémoire un fichier XML dans Excel 2002 en le testant (validation de sa structure).

Au préalable, je me suis assuré que la référence à 'Microsoft XML, v3.0' était validée dans le menu 'Outils/Références...'

Le code ne va pas très loin mais la suite du programme est plutôt facile à aborder en s'appuyant sur le site laltruiste.com (tout est expliqué pour l'utilisation des propriétés et des méthodes).

En espérant que ça te servira!

A plus,
Gizmo [file name=XmlAnalysis.zip size=20778]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XmlAnalysis.zip[/file]
 

Pièces jointes

bonjour Creepy , bonjour Gizmo

Gizmo, merci pour cette belle démo tres interessante

J'espere que tu ne m'en voudra pas : j'ai pris l'initiative de l'adapter pour que cela fonctionne chez moi :'MSXML2.DOMDocument40' ne marchait pas sur mon poste

Je travaille justement sur le sujet en ce moment .La gestion des fichiers XML depuis Excel sera un des chapitres de la prochaine WikiPage (Page 9)
Si tu le permets , je placerai un lien vers ta démo


sinon , ci joint un exemple pour créer un fichier XML depuis Excel , puis un autre pour lire le fichier créé

Option Explicit
Dim j As Long

'*****************************************
'Creer fichier XML
'*****************************************

Sub creerFichierXML()
'http://www.c2i.fr/code.asp?IDCode=21
Dim objDOM As DOMDocument, XnodeRoot As IXMLDOMElement, Xnode As IXMLDOMElement
Dim oNode As IXMLDOMNode

Set objDOM = New DOMDocument
objDOM.resolveExternals = True

Set oNode = objDOM.createProcessingInstruction('xml', 'version='1.0'')
Set oNode = objDOM.insertBefore(oNode, objDOM.childNodes.Item(0))

Set XnodeRoot = objDOM.createElement('noeudRacine')
objDOM.appendChild XnodeRoot

Set Xnode = objDOM.createElement('noeudRacine')
Xnode.setAttribute 'At1', 'Attribut1'
Xnode.Text = 'la Texte 1'
XnodeRoot.appendChild Xnode

Set Xnode = objDOM.createElement('noeudRacine')
Xnode.setAttribute 'At2', 'Attribut2'
Xnode.Text = 'Le texte2'
XnodeRoot.appendChild Xnode

Set Xnode = objDOM.createElement('noeudRacine')
Xnode.setAttribute 'At3', 'Attribut3'
Xnode.Text = 'Le texte 3'
XnodeRoot.appendChild Xnode

objDOM.Save ThisWorkbook.Path & '\\\\\\\\leFichier.xml'

Set XnodeRoot = Nothing
Set Xnode = Nothing
Set objDOM = Nothing
End Sub



'*****************************************
'Lire le contenu du fichier XML
'*****************************************
Sub Test()
Dim xmlDoc As DOMDocument
Dim root As IXMLDOMElement

Set xmlDoc = New DOMDocument

xmlDoc.async = False
xmlDoc.Load ThisWorkbook.Path & '\\\\\\\\leFichier.xml'

Set root = xmlDoc.documentElement
Cells(1, 1) = root.BaseName
j = 1
BrowseChildNodes root

j = 0
End Sub


Private Sub BrowseChildNodes(root_node As IXMLDOMNode)
'http://vb.developpez.com/faq/?page=Routines
Dim i As Long

For i = 0 To root_node.childNodes.Length - 1
If Not root_node.childNodes.Item(i).nodeType = 3 Then
j = j + 1
Cells(j, 1) = root_node.childNodes.Item(i).BaseName & '/' & _
root_node.childNodes.Item(i).Text
End If

BrowseChildNodes root_node.childNodes(i)
Next
End Sub



les sources utilisées



http://vb.developpez.com/faq/?page=Routines



bon dimanche
MichelXld [file name=XmlAnalysis_V02.zip size=17410]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XmlAnalysis_V02.zip[/file]

Message édité par: michelxld, à: 29/01/2006 09:01

Message édité par: michelxld, à: 29/01/2006 17:43

Message édité par: michelxld, à: 03/02/2006 05:03
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour