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

XML/XSL et SOAP Discussion :

Insérer nouveau attribut dans un noeud existant


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Points : 58
    Points
    58
    Par défaut Insérer nouveau attribut dans un noeud existant
    Bonjour,

    J'ai cherché sur le forum et sur la toile mais je ne trouve pas de réponse à mon problème. Je pense que la solution est simple mais je ne vois pas...

    Je voudrai ajouter un nouvel attribut au sein d'un noeud existant d'un fichier xml.
    J'arrive bien à ajouter cet attribut mais celui-ci se place après les attributs déjà présent. Mais je voudrai le placer en seconde position. comment puis-je faire?

    je fais comme ceci pour l'ajout de mon attrbut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim NoeudsIterateur as XmlNodeIterator
    NoeudsIterateur = pathNavigator.select("MaRequeteXpath")
     
    while(NoeudsIterateur.moveNext())
     
    if noeudsIterateur.current.getAttribut("MonAttribut","") = nothing then
    noeudsIterateur.current.CreateAttribut("",MonAttribut,"","MaValeur")
    end if
    End While
    Ceci marche mais je voudrai que le nouvel attribut s'ajoute en seconde position.
    je ne vois pas comment faire...

    Merci d'avance pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Points : 58
    Points
    58
    Par défaut
    Up

    Bon je vais tenter d'expliquer un peu mieux ce que je cherche à faire.

    J'ai un élément XML comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Element name="toto" type="string" version="1.0"></Element>
    Ce que je voudrai c'est pouvoir ajouter un nouvel attribut à cet élément juste à la suite de l'attribut "name" afin que cela me donne quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Element name="toto" conditon="active" type="string" version="1.0"></Element>
    Je sais ajouter cet attribut mais il se positionne à la fin.
    je fais comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If NodeIterator.Current.GetAttribute("condition","") = nothing
    NodeIterator.Current.CreateAttribute("","condition","","active")
    End If
    Mais j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Element name="toto" type="string" version="1.0" conditon="active"></Element>
    Une solution que j'entrevois et qui me semble possible c'est de récupérer les attributs/valeurs de mon noeuds, de les stocker dans des variables.
    De supprimer le noeuds existant puis de le recréer avec les attributs supplémentaire.
    Je pense que cela est faisable mais j'aimerai savoir avant de faire ça s'il n'existe pas un autre moyen pour parvenir à ce que je veux faire.
    Un truc du style : NodeIterator.Current.InsertAttributeAfter("","condition","","active"), comme il est possible de faire pour l'ajout de nouveaux noeuds...

    De l'aide s'il vous plait.

  3. #3
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    tu as regardé la doc pour savoir toutes les méthodes que tu peux appliquer a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NodeIterator.Current
    ton code c'est du VB ??? tu as essayé de demander dans le VB forum ??
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 113
    Points : 58
    Points
    58
    Par défaut
    Oui j'ai regardé dans la doc mais j'ai pas trouvé de méthode comme je le souhaite, et mon code est bien en vb mais je travail avec les bibliotèques xml de visual studio donc communes à plusieurs langages.

    Mais je me suis débrouillé, j'ai fait comme ce que je pensais dans mon poste précédent, c'est à dire, détruire le noeud existant (avec un deletSelf) puis de le recréer comme il faut avec les attributs supplémentaires.

    J'ai testé dans mon logiciel qui importe le document XML et cela marche, c'est bien pris en compte.

    En tout cas merci de t'être intéressé à mon cas.
    Tchuss

  5. #5
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    ok
    même si effacer pour reconstruire est sans doute plus long ..... personne ne le vois si tu le dis pas
    ++
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/09/2010, 16h10
  2. [XSLT] somme d'attributs dans des noeud différents
    Par ze_pat dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/12/2009, 13h58
  3. Réponses: 3
    Dernier message: 12/02/2009, 16h41
  4. [EXCEL] Insérer une ligne dans un fichier existant
    Par willos_fr dans le forum Débuter
    Réponses: 6
    Dernier message: 18/06/2008, 12h25

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