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

XSL/XSLT/XPATH XML Discussion :

[XPATH] Récupérer les noms de toutes les balises enfants


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut [XPATH] Récupérer les noms de toutes les balises enfants
    Bonjour à tous,

    Je souhaite récupérer le nom de toutes les balises enfant d'une balise mère. J'ai essayé différente chose avec folowing-sibling mais rien ne fonctionne si quelqu'un pouvait éclairer ma lanterne ça serait fort aimable :

    L'idée serait de récupérer une seule fois Personnematricule et Personnenom (sachant que j'ai modifié le fichier il y a en fait une quinzaine de balise enfant de <row>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <root>
    <row>
    <Personnematricule>621046</Personnematricule>
    <Personnenom>TOTO</Personnenom>
    </row>
    <row>
    <Personnematricule>710204</Personnematricule>
    <Personnenom>TATA</Personnenom>
    </row>
    <row>
    <Personnematricule>760280</Personnematricule>
    <Personnenom>TITI</Personnenom>
    </row>
    <row>
    <Personnematricule>511263</Personnematricule>
    <Personnenom>PAPA</Personnenom>
    </row>
    <row>
    <Personnematricule>759000</Personnematricule>
    <Personnenom>POPO</Personnenom>
    </row>
    </root>
    merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    J'ai un peu de mal à imaginer à quoi peut ressembler ton code. Pourquoi un simple for-each ne fonctionne-t-il pas ?

    Ça se fait à quel endroit, ce besoin d'avoir une liste de nom, quels sont les paramètres et tout ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    En fait j'ai une table de mappage à laquelle je ne peux pas toucher qui ressemble à ça

    personnematricule;matr
    personnenom;first_name

    etc etc... du coup le but est que mon xml à la fin se retrouve avec des balises <matr> à la place de personnematricule etc etc... En suivant la table de mappage.

    Donc mon idée était de lire tous les noms de balise puis de remplacer en suivant la table...

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par 07121984 Voir le message
    Donc mon idée était de lire tous les noms de balise puis de remplacer en suivant la table...
    Et concrètement, supposons, je te donne une liste des noms de balises, là voilà tu l'as, ça y est. Maintenant tu t'en sers comment de cette liste, pour faire ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Je parcours ma liste de nom je parcours ma table de mappage si je match je fais un replace ?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    ...

    Juste pour qu'on soit clairs. Tu demandes comment obtenir un truc en XPath, mais... Ce n'est pas pour faire du XSLT mais pour faire autre chose ?

    Parce que si c'est pour faire du XSLT j'aimerais bien savoir :

    - Comment tu comptes parcourir une table de mappage
    - Comment tu comptes matcher
    - Comment tu comptes remplacer

    ...

    - Et en fait même comment tu comptes parcourir la liste, parce que certes je peux te faire un truc composé de la liste des noms... Mais seulement pour le produire en sortie. Je ne vois pas comment tu vas le parcourir.

    Par exemple, une liste de noms, c'est une séquence de strings... Or une séquence de strings ça n'existe pas en XPath 1.0. Le plus proche qu'on ait des séquences, c'est l'ensemble de nœuds. Mais un nom n'est pas un nœud, et même si on veut gruger on ne peut pas parcourir un ensemble de nœuds qui ont été construits par XSLT, en XSLT 1.0.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Non je fais une requete xpath je donne le résultat à une "boite magique" (si tu veux que je m'étende sur le sujet je peux mais ce n'est pas ce qui nous interesse ici) qui me fait tout le reste le mappage le replace

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ah, d'accord.

    En XPath 1.0, comme je viens de le dire c'est pas trop possible : une séquence de noms ça n'existe pas. Le mieux que tu puisses faire c'est prendre les nœuds avec /root/row[1]/* et faire extraire leurs noms par ta boîte magique.

    En XPath 2.0, comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    distinct-values(for $e in /root/row/* return name($e))
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Ok merci beaucoup !!!

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

Discussions similaires

  1. [XL-2010] Sortir les noms de toutes les feuilles présentes sur le classeur sur une liste
    Par diss10 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/09/2016, 15h36
  2. Update sur toutes les champs de toutes les tables
    Par cmasset dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/12/2013, 19h04
  3. Recherche d'un script qui donne les nom de tout les fichier
    Par ryodo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/08/2010, 17h40
  4. egaliser toutes les cellules "" de toutes les feuilles
    Par tomy7 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/03/2008, 12h23
  5. parcourir toutes les colonnes de toutes les tables???
    Par cha_cha dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/01/2006, 12h31

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