Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lire 1 fichier XML

2 réponses
Avatar
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

2 réponses

Avatar
Gilles LAURENT [MVP]
" teddy" a écrit dans le message de
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 ---
<?xml version="1.0" encoding="ISO-8859-1"?>

<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
Avatar
teddy
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]" a écrit dans le message de news:

" teddy" a écrit dans le message de
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 ---
<?xml version="1.0" encoding="ISO-8859-1"?>

<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