Suppression attribut [Résolu]

Signaler
Messages postés
37
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
26 décembre 2010
-
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
-
Bonjour,

je souhaite supprimer un attribut à un nœud.
Dans mon cas je souhaite supprimer l'attribut 'requirePermission'
dans le nœud suivant: (exemple) comment puis-je faire?

<sectionGroup name="truc" type="bidul">
      <section name="Nom" type="Letype" requirePermission="false" />
</sectionGroup>

afin d'avoir:
<sectionGroup name="truc" type="bidul">

      <section name="Nom" type="Letype" />

</sectionGroup>

Merci.

7 réponses

Messages postés
37
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
26 décembre 2010

En fait j'ai trouver.
voila ma solution :
XmlNode nextNode XmlDoc.SelectSingleNode("//section[@name 'Nom']");
nextNode.Attributes.RemoveNamedItem("requirePermission");
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Bonjour,

Je ne vois pas d'autre solution (sauf ouvrir le fichier en mode texte) que de lire le fichier XML en entrée afin de fournir un autre fichier XML de sortie.
Car, via les classes XML, tu ne pourras pas modifier un fichier XML déjà existant.

Quelques classes pour t'aider:
Lecture: http://msdn.microsoft.com/fr-fr/library/system.xml.xmltextreader(VS.80).aspx
Ecriture: http://msdn.microsoft.com/fr-fr/library/system.xml.xmltextwriter(VS.80).aspx
OU
Lecture/Ecriture: http://msdn.microsoft.com/fr-fr/library/system.xml.xmldocument(VS.80).aspx

Pour ma part, j'opterai pour la solution XmlTextWriter & XmlTextReader car plus performant et adapter à ton besoin assez simple.

Bonne après midi,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Au temps pour moi, alors, je ne pensais pas que l'on pouvait directement influencer le fichier XML avec la classe XmlDocument.
Je retire donc ma connerie et je m'en excuse.

Bonne fin d'après midi,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Euh, pourtant le troisième lien que tu proposes pointe sur XmlDocument :)

<hr />
-Blog-
-Site Perso-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Effectivement et j'ai même usé et abusé de cette classe. Mais je ne le faisais que dans le contexte de lecture :)
Je n'avais pas vu les méthodes "Remove".

Comme quoi, on n'a jamais finit d'apprendre...

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
C'est justement pour ça que quand les performances sont nécessaires, on évite XmlDocument, car elle est en lecture et écriture.
XmlTextReader et XmlTextWriter sont spécialisées soit en lecture soit en écriture et donc les performances sont améliorées (par exemple parce que XmlTextReader est forward only (on ne peut pas reculer dans le fichier)).

<hr />
-Blog-
-Site Perso-
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
Bonjour,

rien a voir avec le sujet mais juste pour rebondir sur les performances des modes de lecture des fichiers XML, voici un petit lien extremement intéressant :
http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/10/01/27350.aspx

XmlDocument, c'est mal :)