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 :

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>
il me faut :

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>
je me fiche de l'ordre des offres, j'ai juste besoin de les multiplier.

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 :

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")
...
La ligne qui bug est donc la dernière de ma boucle : xmldoc.SelectNodes("/catalog/offersList").appendChild (cloneTest)

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.