[VBS] Récupérer du contenu XML

Fermé
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 - 15 mars 2011 à 08:50
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 - 15 mars 2011 à 12:08
Bonjour,

Je vous expose mon problème :


J'ai (une partie) d'un fichier xml qui se présente comme qui suit ;

- <BULLETIN datevaldeb="DD/MM/YYYY" datevalfin="DD/MM/2010">
  - <LANGUE val="en">
       <LIGNE /> 
       <LIGNE /> 
       <LIGNE>Sunny morning, more</LIGNE> 
       <LIGNE>cloudy in the afternoon</LIGNE> 
       <LIGNE>Light wind from</LIGNE> 
       <LIGNE>Northeast.</LIGNE> 
       <LIGNE /> 
       <LIGNE /> 
       </LANGUE>
  - <LANGUE val="fr">
       <LIGNE>Journee bien</LIGNE> 
       <LIGNE>ensoleillee.Des cumulus</LIGNE> 
       <LIGNE>se forment sur les</LIGNE> 
       <LIGNE>hauteurs occasionnant un</LIGNE> 
       <LIGNE>petit risque d'averse en</LIGNE> 
       <LIGNE>fin de journee.Vent</LIGNE> 
       <LIGNE>faible .Quelques rafales</LIGNE> 
       <LIGNE>sur la frontiere</LIGNE> 
    </LANGUE>
  </BULLETIN>


Je dois récupérer le texte en anglais pour mettre dans une variable X et celui en français dans une variable Y.


J'ai essayé de cette manière dans un premier temps

Set bulletinElements = docElement.getElementsByTagName("BULLETIN")
Set langueElements = docElement.getElementsByTagName("LANGUE")

For Each bulletinElement in bulletinElements
         For Each langueElement in langueElements
                  test = GetElementText(bulletinElement, "LANGUE")
                  msgbox test
         Next
Next



Avec GetElementText j'appel cette fonction

Function GetElementText(xmlObject, tagname)
        Dim xmlElements
        Set xmlElements = xmlObject.getElementsByTagName(tagname)
        If (xmlElements.Length > 0) Then
                GetElementText = xmlElements.item(0).text
        Else
                GetElementText = ""
        End If
End Function


Mais je récupère seulement le texte en anglais 2x de suite.
Je précise que je n'ai que très peux touché au vb/vbs/vba et c'est la première fois que je récupère des info en XML avec.

Merci d'avance pour votre aide ! :)


A voir également:

1 réponse

ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
15 mars 2011 à 12:08
J'ai essayé d'une autre manière en faisant comme ceci :


    For Each langueElement in langueElements

        If (langueElement.getAttribute("val")= "en") Then
              test2 = langueElement.lastChild.text
              msgbox "test1 : " & test1
         ElseIf (langueElement.getAttribute("val")= "fr") Then
              test2 = langueElement.lastChild.text
              msgbox "test2 : " & test2
         End If

     Next


test1 me ressort rien (car la dernière ligne de la partie en anglais est vide)
test2 me ressort "sur la frontiere"

Donc je m'y rapproche, mais n'y a t'il pas un moyen de récupérer tout le contenu jusqu'au lastChild ? Merci :)
0