Bonjour,

j'ai un soucis qui me fais m'arracher les cheveux depuis plusieurs heures. Ne trouvant pas de solutions, je me tourne vers vous.

J'ai un fichier xml du type :

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
<?xml version="1.0" encoding="utf-8" ?>
<gallery title="Diaporama">
    <category name="Conditionnement">
        <image>
            <date>29/03/2008</date>
            <title>Poudre</title>
        </image>
        <image>
            <date>29/03/2008</date>
            <title>Granules</title>
        </image>
    </category>
    <category name="Usine">
        <image>
            <date>30/03/2008</date>
            <title>Usine 1</title>
        </image>
        <image>
            <date>30/03/2008</date>
            <title>Usine 2</title>
        </image>
    </category>
</gallery>
Je souhaite effacer la catégorie "Usine" par exemple, de ce fait je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
XDocument galleryXML = XDocument.Load(xml_path);
 
                    var req = from c in galleryXML.Descendants("category")
                              where c.Attribute("name").Value == "Usine"
                              select c.Attribute("name");
                    foreach (var r in req)
                    {
                        r.Parent.RemoveAll();
                    }
                    galleryXML.Save(xml_path);
Ca efface bien le contenu de la catégorie "Usine", enfin ca efface l'attribut et les noeuds enfants, et çà me laisse :

à la place de :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<category name="Usine">
        <image>
            <date>30/03/2008</date>
            <title>Usine 1</title>
        </image>
        <image>
            <date>30/03/2008</date>
            <title>Usine 2</title>
        </image>
    </category>
Si quelqu'un pouvait me dire ce qui ne va pas, afin que je <category /> n'apparaisse plus, çà serait vraiment sympa, merci.