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

Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Dernière intervention
27 avril 2017
- - Dernière réponse : quentin22breizh
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
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
Afficher la suite 

Votre réponse

2 réponses

Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Dernière intervention
27 avril 2017
0
Merci
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");
Commenter la réponse de quentin22breizh
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Dernière intervention
27 avril 2017
0
Merci
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");
Commenter la réponse de quentin22breizh

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.