Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1482 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  parser un fichier xml

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

parser un fichier xml

n°2247969
donny3
Posté le 09-01-2015 à 22:22:38  profilanswer
 

Bonjour,
 
 
Je dispose d'un fichier xml et j'aurai aimé savoir s'il était possible
de la parser avec vba ?
Je souhaite les attributs de certaine balise et les intégrer dans une feuille.
 
Merci d'avance

mood
Publicité
Posté le 09-01-2015 à 22:22:38  profilanswer
 

n°2247994
Marc L
Posté le 10-01-2015 à 11:29:00  profilanswer
 

 
           Bonjour,
 
           oui c'est possible de lire des données "XML", tout dépend de la source,
           soit via les procédures standards de lecture XML doit via les fonctions manipulant le texte …
 
           Rechercher les nombreux tutoriels sur le sujet …
 
           _____________________________________________________________________________
 
           Je suis Charlie
 

n°2248024
kiki29
Posté le 11-01-2015 à 03:42:43  profilanswer
 

Salut, affecte un bouton à la procédure LireFichierXML
ShDatas est le CodeName de la feuille recevant les données : http://www.developpez.net/forums/d [...] ost5196611

Option Explicit
 
'   Référence à cocher : Microsoft XML,v6.x
 
Private Sub BrowseChildNodes(root_node As IXMLDOMNode)
Dim i As Long
Dim c As Long
Dim rng As Range
 
    For i = 0 To root_node.childNodes.Length - 1
        If root_node.childNodes.Item(i).nodeType <> 3 Then
            If ShDatas.UsedRange.Cells.Count = 1 Then
                Set rng = ShDatas.Cells(1)
            Else
                Set rng = ShDatas.Cells(ShDatas.UsedRange.Rows.Count + 1, 1)
            End If
            With rng
                .Value = root_node.childNodes.Item(i).baseName
                .Offset(0, 1).Value = root_node.childNodes.Item(i).nodeTypeString
                .Offset(0, 2).Value = root_node.childNodes.Item(i).nodeValue
                .Offset(0, 3).Value = root_node.childNodes.Item(i).Text
                For c = 0 To root_node.childNodes.Item(i).Attributes.Length - 1
                    .Offset(0, c + 4).Value = root_node.childNodes.Item(i).Attributes.Item(c).baseName
                    .Offset(0, c + 5).Value = root_node.childNodes.Item(i).Attributes.Item(c).nodeValue
                Next c
            End With
        End If
        BrowseChildNodes root_node.childNodes(i)
    Next i
End Sub
 
Private Sub BrowseXMLDocument(ByVal filename As String)
Dim xmlDoc As DOMDocument, root As IXMLDOMElement
Dim i As Long
Dim c As Long
Dim rng As Range
 
    Set xmlDoc = New DOMDocument
    xmlDoc.async = False
    xmlDoc.Load filename
    Set root = xmlDoc.documentElement
    If Not root Is Nothing Then
        If ShDatas.UsedRange.Cells.Count = 1 Then
            Set rng = ShDatas.Cells(1)
        Else
            Set rng = ShDatas.Cells(ShDatas.UsedRange.Rows.Count + 1, 1)
        End If
        With rng
            .Value = root.baseName
            .Offset(0, 1).Value = root.nodeTypeString
            .Offset(0, 2).Value = root.nodeValue
            .Offset(0, 3).Value = root.Text
            For c = 0 To root.Attributes.Length - 1
                .Offset(0, c + 4).Value = root.Attributes.Item(c).baseName
                .Offset(0, c + 5).Value = root.Attributes.Item(c).nodeValue
            Next c
        End With
        BrowseChildNodes root
    End If
    ShDatas.Cells(1).EntireRow.Insert xlShiftDown
    With ShDatas.Cells(1)
        .Value = "baseName"
        .Offset(0, 1).Value = "nodeTypeString"
        .Offset(0, 2).Value = "nodeValue"
        .Offset(0, 3).Value = "text"
        c = 1
        For i = 4 To ShDatas.UsedRange.Columns.Count - 1 Step 2
            .Offset(0, i).Value = "attribute" & c
            .Offset(0, i + 1).Value = "Value" & c
            c = c + 1
        Next i
    End With
    ShDatas.Rows(1).Font.Bold = True
End Sub
 
Sub LireFichierXML()
Dim Fichier As Variant
    ChDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Fichier XML (*.xml), *.xml" )
    If Fichier = False Then Exit Sub
    Application.ScreenUpdating = False
    ShDatas.Cells.Clear
    BrowseXMLDocument Fichier
    Application.ScreenUpdating = True
End Sub


Message édité par kiki29 le 11-01-2015 à 21:12:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  parser un fichier xml

 

Sujets relatifs
parser un fichier json avec jquery[Android] Parser un fichier JSON
Compilation parser XML pour intégration à un code CParser un fichier en perl
Parser un fichier BibTex pour l'insérer dans une bdd MySQLparser un fichier XML
Parser fichier XMLRécuperer une valeur d'un onData, parser un fichier srt
[C] Parser un fichier texteparser un fichier texte en php
Plus de sujets relatifs à : parser un fichier xml


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR