cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 2006
-
24 août 2005 à 15:11
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 2006
-
25 août 2005 à 14:34
Bonjour, je dois lire un fichier XML et remplir une TreeView avec certains éléments de ce fichier.
J'ai consulté l'ensemble des sources sur la manière de lire un fichier XML et de rechercher des éléments.
J'arrive tant bien que mal à effectuer une recherche mais je n'arrive pas à récupérer un des attributs du noeud sur lequel je me trouve.
Voici un extrait de mon code (je dois récupérer les attributs transactionId et transactionStatus de l'element transactionNotifications ce que j'ai fait, puis je dois ensuite récupérer l'attribut gtin de l'element wwre:cipKeys ce que je n'arrive pas à faire)
dim oXmlDom As MSXML2.DOMDocument40
Set oXmlDom = New MSXML2.DOMDocument40
'Chargement du document
oXmlDom.Load (TxtChe.Text)
'Elements DOM
Dim xTransaction As IXMLDOMElement
Dim xTra As IXMLDOMElement
'Listes de noeuds DOM
Dim ListeDeNoeuds As IXMLDOMNodeList
Dim ListeDeNoeuds2 As IXMLDOMNodeList
'Noeuds DOM
Dim NoeudRecherché As IXMLDOMNode
Dim NoeudRecherchéFils As IXMLDOMNode
Dim i As Integer
i = 1
For Each xTransaction In oXmlDom.getElementsByTagName("transactionNotifications")
'Alimentation du noeud pere (transaction)
Set NoeudPere = TVTra.Nodes.Add() NoeudPere.Text xTransaction.getAttribute("transactionId") & " " & xTransaction.getAttribute("transactionStatus")
NoeudPere.Tag = i
NoeudPere.Image = 1
NoeudPere.Bold = True
'Je récupère la liste de noeuds de xTransaction
Set ListeDeNoeuds = xTransaction.childNodes
Dim test As IXMLDOMAttribute
For Each NoeudRecherché In ListeDeNoeuds
If NoeudRecherché.nodeName = "record" Then
Set ListeDeNoeuds2 = NoeudRecherché.childNodes
For Each NoeudRecherchéFils In ListeDeNoeuds2 If NoeudRecherchéFils.nodeName "wwre:cinKeys" Or NoeudRecherchéFils.nodeName "wwre:cipKeys" Then
'Alimentation du noeud fils (gtin)
Set NoeudFils = TVTra.Nodes.Add(NoeudPere, tvwChild)
NoeudFils.Text = ????? .getAttribute("gtin")
NoeudFils.Tag = Fi
NoeudFils.Image = 2
NoeudFils.Bold = True
NoeudFils.EnsureVisible
End If
Next
End If
Next
Next
i = i + 1
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 20063 25 août 2005 à 14:34
Non je n'ai pas essayé, finalement j'ai réussi a le recupérer en déclarant un attribut et en faisant de la manière suivante :
...
For Each NoeudRecherché In ListeDeNoeuds
If NoeudRecherché.nodeName = "record" Then
Set ListeDeNoeuds2 = NoeudRecherché.childNodes
For Each NoeudRecherchéFils In ListeDeNoeuds2 If NoeudRecherchéFils.nodeName "wwre:cinKeys" Or NoeudRecherchéFils.nodeName "wwre:cipKeys" Then
For Each oAttribut In NoeudRecherchéFils.Attributes
If oAttribut.Name = "gtin" Then
'Alimentation du noeud fils (gtin)
Set NoeudFils = TVTra.Nodes.Add(NoeudPere, tvwChild)
NoeudFils.Text = oAttribut.Text
NoeudFils.Image = 2
NoeudFils.Bold = True
NoeudFils.EnsureVisible
End If
Next
...