Recuperer tout les données de fichier xml dans une feuile excel
Fermé
blalaa
Messages postés
167
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
24 mars 2020
-
Modifié le 4 févr. 2020 à 17:08
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020 - 14 févr. 2020 à 14:04
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020 - 14 févr. 2020 à 14:04
A voir également:
- Extraire des données d'un fichier xml
- Fichier rar - Guide
- Fichier host - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
blalaa
Messages postés
167
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
24 mars 2020
Modifié le 5 févr. 2020 à 15:29
Modifié le 5 févr. 2020 à 15:29
Re
j'ai reussi a mettre un code que j'ai bien compris
mon fichier XML
le code fonctionne super bien,
y a t il un moyen de ne pas preciser les noms de balises (Products,Productss,Product)afin de recuperer exactement les mm données sur un autre fichier qui n'as pas forcement les mm nom de ces balises (mais contient les données recuperes (id,name,price,quantity) ?
Merci d'avance
j'ai reussi a mettre un code que j'ai bien compris
Sub test_xml()
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Title = "select a XML File"
.Filters.Add "XML File", "*.xml", 1
.AllowMultiSelect = False
If .Show = True Then
xmlFileName = .SelectedItems(1)
Dim xDoc As Object
Set xDoc = CreateObject("MSXML2.DOMDocument")
xDoc.async = False: xDoc.validateOnParse = False
xDoc.Load (xmlFileName)
Set Productss = xDoc.DocumentElement
i = 2
For Each Products In Productss.ChildNodes
For Each Product In Products.ChildNodes
Debug.Print "id: " & Product.ChildNodes(0).Text
Debug.Print "name: " & Product.ChildNodes(1).Text
Debug.Print "price: " & Product.ChildNodes(2).Text
Debug.Print "quantity: " & Product.ChildNodes(3).Text
Debug.Print "------------------------------------"
Application.Cells(i, 5).Value = Product.ChildNodes(0).Text
Application.Cells(i, 6).Value = Product.ChildNodes(1).Text
Application.Cells(i, 7).Value = Product.ChildNodes(2).Text
Application.Cells(i, 8).Value = Product.ChildNodes(3).Text
'.Range("range")
i = i + 1
Next Product
Next Products
End If
End With
End Sub
mon fichier XML
<?xml version="1.0" encoding="UTF-8"?> <Productss> <Products> <Product> <id>p01</id> <name>name 1</name> <price>5</price> <quantity>777</quantity> </Product> <Product> <id>p02</id> <name>name 2</name> <price>8</price> <quantity>778</quantity> </Product> <Product> <id>p03</id> <name>name 3</name> <price>11</price> <quantity>779</quantity> </Product> </Products> </Productss>
le code fonctionne super bien,
y a t il un moyen de ne pas preciser les noms de balises (Products,Productss,Product)afin de recuperer exactement les mm données sur un autre fichier qui n'as pas forcement les mm nom de ces balises (mais contient les données recuperes (id,name,price,quantity) ?
Merci d'avance