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 :

XSL:afficher l'ensemble des attributs d'un élement


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Par défaut XSL:afficher l'ensemble des attributs d'un élement
    Bonjour,

    Je débute en mise en forme XML. J'en suis à l'utilisation de feuilles de style assez basique.

    J'ai en entrée du XML qui peut ressembler à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Service Name='Mon Service' Details="blabla">
      <Configuration version="1.1" data="toto" date="2015-03-10T14:22:14.504186Z"/>
      <Fonction name="Ma Fonction" id="1" help="some text"/>
      <Fonction name="Ma Fonction bis" id="2" help="some text bis"//>
    </Service>
    (c'est un extrait simplifié qui ne sert pas à grand chose, en vrai, j'ai plusieurs éléments imbriqués mais ce n'est pas l'important)

    et en sortie, ça devrait ressembler à ça:
    Service configuré : mon service
    version : 1.1
    date : 2015-03-10T14:22:14.504186Z
    Ma Fonction:
    * id: 1
    * help: some text
    *Ma Fonction bis:
    * id: 2
    * help : some text bis

    (les * représentant des puces).

    Je sais afficher chaque attribut en les nommant par exemple "Service/Fonction/@name", mais je souhaiterais quelque chose qui affiche par défaut tous les attributs d'un élément, (à part si une règle spécifique est précisée pour un attribut donné).

    En effet, je peux avoir un nombre d'attributs assez important et je n'ai pas forcément besoin de remettre à jour la feuille de style pour avoir l'affichage qui me convient.

    En espérant avoir été claire, merci d'avance pour toutes aides*

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Je suis surpris que ton apprentissage de XSLT ne t'ait pas parlé de ça.

    Bref, c'est * pour prendre tous les éléments (ça s'utilise comme Fonction qui prend tous les éléments <Fonction>, sauf que * prend absolument tous les éléments.)
    Et @* pour prendre tous les attributs.

    Donc tous les attributs et tous les éléments, en même temps, c'est @*|*
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Par défaut
    Bonjour et merci de ta réponse.

    Mon apprentissage de xslt date d'il y a quelques heures. Je suis plutôt développement logiciel embarqué.

    J'ai vu le @*, mais mon utilisation c'est résumée à tester ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:for-each select="Service/Fonction/@*">
    <li><xsl:value-of select="." /></li>
    qui ne m'affiche que le premier attribut, alors que j'espérais naïvement dans un premier temps une jolie liste avec chaque attribut.
    (Dans un second temps afficher NomAttribut: Valeur Attribut, pour toutes les informations que je n'ai pas besoin de mettre en forme pour le moment)

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par mm_als Voir le message
    J'ai vu le @*, mais mon utilisation c'est résumée à tester ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:for-each select="Service/Fonction/@*">
    <li><xsl:value-of select="." /></li>
    qui ne m'affiche que le premier attribut, alors que j'espérais naïvement dans un premier temps une jolie liste avec chaque attribut.
    Pourtant c'est la bonne manière de faire : cela affiche tous les attributs de toutes les Fonction, donc en partant de ton exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <li>Ma Fonction</li>
    <li>1</li>
    <li>some text</li>
    <li>Ma Fonction bis</li>
    <li>2</li>
    <li>some text bis</li>
    Si ce n'est pas ce que tu obtiens ce n'est pas normal.
    Mais, ce n'est pas avec deux lignes qu'on peut juger ce qui a pu mal se passer.

    Il faut montrer ce que tu as essayé qui commence par <xsl:stylesheet et termine par </xsl:stylesheet>, avec tout ce qu'il y a au milieu.

    Pareil pour ton XML. Celui que tu nous montres en exemple a l'air fini et testable, mais en réalité ce n'est pas du XML acceptable, l'avant-dernière ligne n'a pas le droit de finir par //>
    Normalement les programmes qui traitent XML devraient refuser de toucher ce fichier. Mais on peyut imaginer par exemple un moteur XSLT buggué qui prendrait le fichier et ferait n'importe quoi à cause de la balise incorrecte.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Par défaut
    OK, je vais essayer de mettre un ensemble plus concret sur lequel j'aurais testé.
    Mon xml en entrée est correcte, j'ai juste voulu grandement le simplifier pour être plus lisible.
    Donc, effectivement, celui que je met dans mon message n'a pas été testé.

    Je pourrais plutôt faire ça jeudi, mais je n'oublie pas le sujet et j'expliquerai mon erreur si jamais je trouve entre temps.

    Cordialement

  6. #6
    Candidat au Club
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Par défaut
    Bonjour,

    j'ai vérifié ce que j'avais fait.
    En fait, cela fonctionne pour récupérer tous les attributs.
    J'avais essayé de faire quelque chose de récursif et là, ça n'a pas bien marché.
    Je vais simplifier et avancer par étape.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/06/2010, 13h17
  2. [XSLT] Recopier l'ensemble des attributs et leur valeur
    Par gandalflemaia dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/11/2009, 18h09
  3. afficher le nom des attributs et leur contenu
    Par PoichOU dans le forum Général Java
    Réponses: 4
    Dernier message: 28/06/2007, 21h30
  4. Réponses: 5
    Dernier message: 31/05/2007, 13h10
  5. [Tomcat] afficher la liste des attributs en session
    Par michaelbob dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/04/2006, 01h07

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