Bonjour, je me permet de venir demander une pointe d'aide ici, c'est la première fois que je n'arrive pas à trouver mon bonheur dans la FAQ et les tutos
Mon problème est assez simple, j'ai un fichier XML avec une liste d'objets que je dois multiplier. mon fichier XML est donc de cette forme :
il me faut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <catalogue> <listedoffre> <offre numero="1"/> <offre numero="3"/> ... </listedoffre> </catalogue>
je me fiche de l'ordre des offres, j'ai juste besoin de les multiplier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <catalogue> <listedoffre> <offre numero="1_1"/> <offre numero="3_1"/> <offre numero="1_2"/> <offre numero="3_2"/> ... </listedoffre> </catalogue>
grâce à ce tuto : http://baptiste-wicht.developpez.com...ipt/xml/xpath/
j'ai réussi à refaire la suppression (inutile pour moi), j'ai changé les noms (super ca) et j'arrive même à créer un clone en cherchant par moi même, mais impossible de le rajouter dans mon XML avant d'enregistrer !
voici donc mon code :
La ligne qui bug est donc la dernière de ma boucle : xmldoc.SelectNodes("/catalog/offersList").appendChild (cloneTest)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 'Création du XML et chargement Set xmldoc = CreateObject("Microsoft.XMLDOM") ... 'Boucle sur les offres For Each offerElement In xmldoc.SelectNodes("/catalog/offersList/offer") 'On récupère le code de l'offre code = offerElement.getAttribute("code") 'On lui rajoute un _1 offerElement.setAttribute "code", code + "_1" 'Création du clone Set cloneTest = offerElement.CloneNode(True) 'Ajout au clone du _2 cloneTest.setAttribute "code", code + "_2" 'Ajout du clone dans la liste xmldoc.SelectSingleNodes("/catalog/offersList").appendChild (cloneTest) Next 'Enregistrement du XML Set rdr = CreateObject("MSXML2.SAXXMLReader") ...
Je vois pas ce que je fais de mal, ca doit être tout bête mais ... il me dit que la propriété ou la méthode n'est pas géré par cet objet, pourtant je rajoute une offre à la liste d'offre.
J'ai tenté aussi le xmldoc.SelectSingleNodes("/catalog/offersList[1]").appendChild (cloneTest) et le xmldoc.SelectNodes("/catalog/offersList[1]").appendChild (cloneTest) pour qu'il prenne bien ma première (et seule) list d'offre mais ... même message.
Partager