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 :

[XSLT] For-each avec variable multidimensionelle


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [XSLT] For-each avec variable multidimensionelle
    Bonjour à tous !

    J'ai une XSLT qui s'exécute sur un très gros fichier XML et je dois faire un for-each sur un élément dont l'identifiant peut être multiple. Comme c'est pas clair je vais mettre tout de suite un exemple ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:variable name ="TS_ids" select ="/export/business_process.realized_by[@domain=$BP_id]/@range"/>
     
    <xsl:when test="/export/technical_system[@id=$TS_ids]">
            <xsl:for-each select ="/export/technical_system[@id=$TS_ids]">
     
    Etc.
    Donc en gros je récupère tous les identifiants des TS qui réalisent un BP. Ma variable TS_ids, pour mon test, a 5 dimensions (donc j'ai 5 identifiants).
    Mais lorsque je fais mon for-each, il ne passe que sur la première valeur.

    Si je met le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:when test="/export/technical_system[@id=/export/business_process.realized_by[@domain=$BP_id]/@range]">
            <xsl:for-each select ="/export/technical_system[@id=/export/business_process.realized_by[@domain=$BP_id]/@range]">
    Donc en court-circuitant la variable, il passe bien sur les 5 identifiants, mais est vraiment très très lent (forcément).

    Bref, est-ce que quelqu'un aurait une solution s'il vous plait ?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bon, j'ai contourné donc pour ceux que ça intéresse, au final j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <xsl:choose>
          <xsl:when test="/export/business_process.realized_by[@domain=$BP_id]">
            <xsl:apply-templates select ="/export/business_process.realized_by[@domain=$BP_id]">
    Donc en utilisant une seule variable et en rajoutant un template au milieu ça fait le même travail mais en beaucoup plus rapide !

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

Discussions similaires

  1. For-each avec une variable en php
    Par Aurel06 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/08/2009, 12h52
  2. [XSL] For each avec variables imbriquées
    Par Wells dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/05/2008, 19h28
  3. [XSLT] for-each et variables
    Par Mil17 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 08/08/2007, 15h11
  4. [XSLT] Croiser plusieurs xsl:for-each avec deux documents XML
    Par strat0 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 16h10
  5. [xslt] For-each dans template avec format XML (row)
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/11/2005, 11h14

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