Ajout d'une attribut à la racine avec Linq To Xml [Résolu]

Signaler
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017
-
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017
-
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

Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017

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");
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017

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");