Problème d'écriture dans un XML

Résolu
cs_olden Messages postés 38 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 9 janvier 2008 - 13 août 2007 à 15:55
cs_olden Messages postés 38 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 9 janvier 2008 - 14 août 2007 à 08:53
Bonjour,
j'essais d'ajouter des éléments dans un xml, et je ne trouve pas d'où viennent les erreurs de mon code:
      
 XmlDocument docxml = new XmlDocument();
        //On ouvre le document xml
        docxml.Load("C:\\testecriture.xml");

        //On recupere le noeud racine dans la variable root
        XmlElement root = docxml.DocumentElement;
        docxml.WriteStartElement("srvtest");
        docxml.WriteAttributeString("value", "test1");
        docxml.Save("C:\\testecriture.xml");

J'ai commessage d'erreur: 'System.Xml.XmlDocument' ne contien pas de définition pour 'WrireStartElement', idem pour WriteAttributeString
Pourquoi tant de haine?

Merci

7 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 août 2007 à 18:10
Forcément, vu que le second paramètre de la méthode CreateElement(String, String) est : "namespaceURI   URI de l'espace de noms de l'élément."
Et non pas un quelconque nom d'attribut ou valeur.

XmlDocument doc = new XmlDocument();
doc.Load("C:\\testecriture.xml");



// Création de l'élément "serveur"
XmlElement elem = doc.CreateElement("serveur");
// Création de l'attribut "value"
XmlAttribute valueAttribute = doc.CreateAttribute("value");
valueAttribute.Value = "Toto";
// Ajout de l'attribut à l'élément "serveur"
elem.Attributes.Append(valueAttribute);
// Ajout de l'élément au document
doc.DocumentElement.AppendChild(elem);



doc.Save("C:\\testecriture.xml");







/*
coq
MVP Visual C#
CoqBlog
*/
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 août 2007 à 16:01
à mon avis, c'est ca que tu veux :

        //On recupere le noeud racine dans la variable root
        XmlElement root = docxml.DocumentElement;
        root.WriteStartElement("srvtest");
        root.WriteAttributeString("value", "test1");
        docxml.Save("C:\\testecriture.xml");

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
cs_olden Messages postés 38 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 9 janvier 2008
13 août 2007 à 16:08
Arf...

j'ai toujours la même erreur, mais je me demande si c'est pas parce que WriteStartElement et WriteAttributeString font partie de XMLWriter? si oui, comment faire pour créer des lignes qui ont cette tête là: <srvtest value="test1"/> sans passer par XmlWriter, car avec XmlWriter, je n'arrive que à créer des xml (et encore...), mais pas à rajouter des lignes?

Merci
0
cs_olden Messages postés 38 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 9 janvier 2008
13 août 2007 à 16:15
Si j'écris:

docxml.CreateElement("srvtest");
docxml.CreateAttribute("value", "test1");
docxml.Save("C:\\testecriture.xml");

je n'ai pas d'erreur, mais je n'ai rien dans mon xml...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 août 2007 à 16:21
Salut,

Comme le dit la doc, les méthodes Create* créent les instances et les retournent, mais ne les ajoutent pas au document.

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_olden Messages postés 38 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 9 janvier 2008
13 août 2007 à 17:23
J'ai beau lire la doc, je reste bloqué avec ca:
        XmlDocument doc = new XmlDocument();
        doc.Load("C:\\testecriture.xml");
        XmlElement elem = doc.CreateElement("serveur","value");
        doc.DocumentElement.AppendChild(elem);
        doc.Save("C:\\testecriture.xml")

qui me donne :   <serveur xmlns="value" /> alors que je voudrais:   <serveur value="Toto" />

tous ce que j'ai essaié d'autre m'éloigne du résultat que j'attends.
Comment faire pour modifier xmlns en value?

Merci
0
cs_olden Messages postés 38 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 9 janvier 2008
14 août 2007 à 08:53
C'est bon, c'est exactement ce que je voulais.

Merci pour l'aide
0
Rejoignez-nous