Ajout d'une attribut à la racine avec Linq To Xml

Résolu
quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017 - 27 avril 2017 à 11:51
quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017 - 27 avril 2017 à 14:17
Bonjour à tous,

Je me permets de venir vers vous car je rencontre un souci avec la fonction linq to Xml en c#. Je dois créer un fichier XML avec cette structure:
<?xml version="1.0" encoding="UTF-8"?>
<SystemStructure   xmlns="SimSED" >
</SystemStructure>

Pour la création du fichier et de la balise, aucun souci mais je n'arrive pas à ajouter mon attribut. Il me dit "Un attribut ne peut être ajouté au contenu".

Voici mon code, si quelqu'un avait une solution, je serai plus que preneur.

//Création du fichier XML source
                XDocument XmlDoc = new XDocument(new XElement("SystemStructure"), new XAttribute("xmlns", "SimSED"));

                //Sauvegarde du fichier
                XmlDoc.Save(NomDossierDest.Text + @"\Test.simsed");

Bonne journée à tous

2 réponses

quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017
27 avril 2017 à 13:51
Bon, j'ai partiellement corrigé mon erreur. Mais il refuse de m'ajouter le "xlmns" en attribut. Je le remplace par n'importe quoi, ça le prend mais lui, il ne veut rien savoir...

Nouveau code:

//Création du fichier XML source
XDocument XmlDoc = new XDocument(new XElement("SystemStructure", new XAttribute(@"xmlns", "SimSed"),
new XElement("Test")));
//Sauvegarde du fichier
XmlDoc.Save(NomDossierDest.Text + @"\Test.simsed");
quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017
27 avril 2017 à 14:17
Problème résolu.
Xlmns est un namespace et donc, on ne peut pas le définir comme je l'ai fait.

Voici le code corrigé:

XNamespace aw = "SimSed";

//Création du fichier XML source
XDocument XmlDoc = new XDocument(new XElement(aw + "SystemStructure",
new XElement(aw + "partiecommande"), new XElement(aw + "partieoperative")));
//Sauvegarde du fichier
XmlDoc.Save(NomDossierDest.Text + @"\Test.simsed");
Rejoignez-nous