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 :

[JAVA] for-each sur une liste [XSLT 2.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut [JAVA] for-each sur une liste
    Bonjour.

    J'ai fouillé sur ce forum et sur d'autres sans résultats précis.

    Est-il possible de faire un xsl:for-each sur un paramètre de type java.util.List passé dans un transformer xml?

    Ma liste contiendrait des String.

    Côté java j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    List<String> test = new ArrayList<String>();
    test.add("item1");
    test.add("item2");
    test.add("item3");
     
    transformer.setParameter("my_list",test);
    ...
    Côté xsl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    ...
    <xsl:param name="my_list"/>
    ...
    ...
     
    <xsl:for-each select="$my_list">
        <xsl:value-of select="."/>
    </xsl:for-each>
    ...
    ...
    L'erreur que j'ai est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Impossible de convertir #UNKNOWN (java.util.ArrayList) en un NodeList !
    J'ai compris le message d'erreur, dois-je passer une liste de node plutôt qu'une liste java? Cela ne m'arrange pas trop ...

    Merci pour votre aide.

    Benoit.

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour benoit31,

    sans ambiguïté : oui

    puisque l'élément xsl:for-each est définit par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:for-each
       select = node-set-expression>
       Content : (xsl:sort*, modèle)
    </xsl:for-each>

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 578
    Par défaut
    Citation Envoyé par polymorphisme Voir le message
    Bonjour benoit31,

    sans ambiguïté : oui

    puisque l'élément xsl:for-each est définit par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:for-each
       select = node-set-expression>
       Content : (xsl:sort*, modèle)
    </xsl:for-each>
    En XSLT 1.0, oui, mais en XSLT 2.0 (indiqué dans le titre) c'est très différent.

    Là le select doit être une expression de séquence, qui peut être une suite de n'importe quoi.
    Je m'attendrais à ce qu'un moteur XSLT 2.0 en Java soit capable de gérer une List (et une Collection, en fait) comme une séquence. En tout cas qu'il se limite pas à essayer en NodeList. D'ailleurs je vais tester avec Saxon pour voir.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Autant pour moi !

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut
    Merci pour ces réponses.
    Au final, j'ai transformer mon arrayList en fichier xml contenant des nodes. Je les parcours avec un xsl:for-each classique.
    Cela me permet de manipuler mon fichier xml plus tard.

    Benoit

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 578
    Par défaut
    Oui. C'est un peu compliqué, mais c'est aussi ce que je fais, en général.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Débutant] For each sur une classe hérité
    Par edmr_ps dans le forum VB.NET
    Réponses: 5
    Dernier message: 27/08/2012, 15h28
  2. [Batch] FOR sur une liste qui a des champs vides
    Par un_mec dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 18/03/2011, 11h04
  3. Erreur d'index sur une List<int> dans boucle for
    Par popoliline dans le forum C#
    Réponses: 13
    Dernier message: 16/06/2010, 11h03
  4. [AC-2003] boucle For Each sur les donnees d'une table
    Par TheRRb dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/07/2009, 12h15
  5. Réponses: 1
    Dernier message: 22/04/2008, 21h25

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