Lire 1 fichier XML

Le
teddy
Bonjour à tous,

J'ai 1 fichier XML à lire avec des balises identiques par leur nom - voir des hiérarchies de balises complètement identiques - avec
pour seule différence le libellé dans la propriété LABEL.
Exemple de balises <toto> :
<toto label="titi">données</>
<toto label="tutu">données</>

J'ai donc des problèmes de confusion de balises (ou redondance) à partir du moment où je capture les balises et leurs valeurs par
leur Nom et pas par une propriété LABEL quelconque.

Existe-t-il - en dehors des outils d'analyse XML fournis par exemple avec l'éditeur UltraEdit - un moyen de lire le nom d'une balise
et son label afin d'avoir l'information complète.

Merci d'avance pour vos suggestions.
(question posée sur un forum vb restée sans réponse)

Teddy
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #14498471
" teddy" news:
| Bonjour à tous,

Bonjour,

[...]
| Existe-t-il - en dehors des outils d'analyse XML fournis par exemple
| avec l'éditeur UltraEdit - un moyen de lire le nom d'une balise et
| son label afin d'avoir l'information complète.

Par exemple comme cela :

--- Coupez ici : Test.xml ---

<test>
<toto label="titi">données_titi</toto>
<toto label="tutu">données_tutu</toto>
</test>
--- Coupez ici : Test.xml ---

--- Coupez ici : getElementByLabel.vbs ---
Set oTag=GetElementByLabel( _
"test.xml", _
"toto", _
"label", _
"titi")

WScript.Echo "Tag : " & oTag.TagName
WScript.Echo "Label: " & oTag.Attributes.GetNamedItem("label").Name
WScript.Echo "Value: " & oTag.Attributes.GetNamedItem("label").Value
WScript.Echo "Data : " & oTag.Text

Function GetElementByLabel(strFile, strTag, strLabel, strValue)
Set oXml=CreateObject("Microsoft.XMLDom")
oXml.Load strFile
Set colTags=oXml.GetElementsByTagName(strTag)
For Each oTag In colTags
Set colAttr=oTag.Attributes
For Each oAttr In colAttr
If oAttr.Name=strLabel And oAttr.Value=strValue Then
Set GetElementByLabel=oTag
End If
Next
Next
End Function
--- Coupez ici : getElementByLabel.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
teddy
Le #16318131
Tag, Label, Value, Data : voilà beaucoup de données disséminées à regrouper
pour écrire ces données dans une structure de table SQL..
Merci beaucoup pour ces précisions.
Teddy


"Gilles LAURENT [MVP]"
" teddy" news:
| Bonjour à tous,

Bonjour,

[...]
| Existe-t-il - en dehors des outils d'analyse XML fournis par exemple
| avec l'éditeur UltraEdit - un moyen de lire le nom d'une balise et
| son label afin d'avoir l'information complète.

Par exemple comme cela :

--- Coupez ici : Test.xml ---

<test>
<toto label="titi">données_titi</toto>
<toto label="tutu">données_tutu</toto>
</test>
--- Coupez ici : Test.xml ---

--- Coupez ici : getElementByLabel.vbs ---
Set oTag=GetElementByLabel( _
"test.xml", _
"toto", _
"label", _
"titi")

WScript.Echo "Tag : " & oTag.TagName
WScript.Echo "Label: " & oTag.Attributes.GetNamedItem("label").Name
WScript.Echo "Value: " & oTag.Attributes.GetNamedItem("label").Value
WScript.Echo "Data : " & oTag.Text

Function GetElementByLabel(strFile, strTag, strLabel, strValue)
Set oXml=CreateObject("Microsoft.XMLDom")
oXml.Load strFile
Set colTags=oXml.GetElementsByTagName(strTag)
For Each oTag In colTags
Set colAttr=oTag.Attributes
For Each oAttr In colAttr
If oAttr.Name=strLabel And oAttr.Value=strValue Then
Set GetElementByLabel=oTag
End If
Next
Next
End Function
--- Coupez ici : getElementByLabel.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr




Publicité
Poster une réponse
Anonyme