Bonjour,
J'ai une méthode qui crée des enregistrements dans un fichier XML.
Voici le 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
XmlDoc.Load(sPath + "XMLTarifsTransporteurs.xml");
                Navigator = XmlDoc.CreateNavigator();
                string ExpXPath = "//TarifTransporteur/Transporteur";
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                if (Nodes.Count != 0)
                {
                    Nodes.MoveNext();
                    // On crée le noeud principal (Transporteur). 
                    Nodes.Current.InsertElementAfter("", "Transporteur", "", "");
                    // On se place sur le noeud ainsi créé. 
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.CreateAttribute("", "NumID", "", NuméroID);
 
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.PrependChildElement("", "Région", "", "");
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.CreateAttribute("", "Nom", "", mesDonnées[0, 0]);
 
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.PrependChildElement("", "Département", "", "");
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.CreateAttribute("", "NumCode", "", mesDonnées[0, 1]);
 
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.PrependChildElement("", "Palette", "", mesDonnées[0, 2]);
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.CreateAttribute("", "id", "", "1");
                    //???
                    //Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.AppendChildElement("", "Palette", "", mesDonnées[0, 3]);
                    Nodes.Current.MoveToChild(XPathNodeType.Element);
                    Nodes.Current.CreateAttribute("", "id", "", "2");
 
                    XmlDoc.Save(sPath + "XMLTarifsTransporteurs.xml");
                }
Et voici ce que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<Transporteur NumID="F-TRP001">
    <Région Nom="Aquitaine">
      <Département NumCode="24">
        <Palette id="1">120<Palette id="2">200</Palette></Palette>
      </Département>
    </Région>
  </Transporteur>
Alors que je voudrais obtenir ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<Transporteur NumID="F-TRP001">
    <Région Nom="Aquitaine">
      <Département NumCode="24">
        <Palette id="1">120</Palette>
        <Palette id="2">200</Palette>
      </Département>
    </Région>
  </Transporteur>
J'ai tenté toutes les possibilités offertes par XPathNodeIterator.Current mais jusqu'ici en vain.
Quelqu'un aurait-il la solution ?
D'avance merci.