IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Modifier un attribut XML


Sujet :

ASP.NET

  1. #1
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut Modifier un attribut XML
    Bonjour à toi lecteur.

    J'expose mon problème :
    Je n'arrive pas à modifier un attribut XML.
    Exemple du fichier monFichier.XML

    <?xml version="1.0" encoding="utf-8"?>
    <racine>
    <noeud attribut="unAttribut" />
    </racine>
    Ce que j'ai essayé de faire pour résoudre ce problème :

    'Instance des objet pour travailler sur le XML
    Dim XmlDoc As New XmlDocument()
    Dim Navigator As XPathNavigator
    Dim Nodes As XPathNodeIterator
    'Chargement
    XmlDoc.Load("monFichier.xml")
    Navigator = XmlDoc.CreateNavigator()

    _ExpXPath = "//type[@attribut='" & unAttribut & "']"
    Nodes = Navigator.[Select](Navigator.Compile(_ExpXPath))

    'On se positionne sur le premier noeud
    Nodes.MoveNext()

    'On le supprime
    Nodes.Current.DeleteSelf()

    'On créer un nouveau noeud avec un nouvel attribut

    Nodes.Current.InsertAfter(Nodes.MoveNext)
    Nodes.Current.MoveToNext(XPathNodeType.Element)


    Nodes.Current.CreateAttribute("", "attribut", "", nouvelleValeur)


    J'arrive vraiment pas à trouver la solution, si vous pouviez me dire ce que je fais de mal je vous en remercie
    Je débute en XML donc certaines notions m'échape...

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Problème identifié.
    Réponse trouvé.

    Explication :

    Lorsqu'on fait un "insertElementAfter" ou "..Before"; le Nodes nous positionne sur le noeud d'aprés; du coup je tentais en vain de rajouter de nouveau attribut, qui allait se mettre sur le noeud suivant et non le noeud que je venais de créer.

    J'ai utilisé " Nodes.Current.MoveToPrevious()" pour corriger mon problème.

    Je rajoute la correction.


    'on supprime le noeud
    _ExpXPath = "//noeud[@attribut='" & unAttribut & "']"
    Nodes = Navigator.[Select](Navigator.Compile(_ExpXPath))
    Nodes.MoveNext()
    Nodes.Current.DeleteSelf()

    'on en recrée un
    _ExpXPath = "//type"
    Nodes = Navigator.[Select](Navigator.Compile(_ExpXPath))
    Nodes.MoveNext()


    Nodes.Current.InsertElementBefore("", "noeud", "", "")
    Nodes.Current.MoveToPrevious()
    Nodes.Current.CreateAttribute("", "attribut", "", nouvelAttribut)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Modifier valeur attribut XML
    Par kimi9664 dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/08/2011, 11h39
  2. [QtXml] Modifier un attribut dans un fichier XML ? (QDomDocument)
    Par benbannock dans le forum PyQt
    Réponses: 1
    Dernier message: 27/09/2010, 16h56
  3. comment je pourrais modifier un attribut dans un fichier xml
    Par ryoussef19 dans le forum Visual C++
    Réponses: 6
    Dernier message: 24/08/2007, 14h16
  4. modifier la valeur d'un attribut xml
    Par totoche dans le forum ASP
    Réponses: 2
    Dernier message: 13/12/2005, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo