Avatar billede bhn.314 Nybegynder
07. april 2004 - 13:50 Der er 3 kommentarer og
1 løsning

nested <xsl:for-each

Jeg VILLE have lavet noget a la:
<land dataSrc="getLand" PARAM0="form.land_id">
  <antal/>
  <samlet_pct/>
  <by dataSrc="getBy" PARAM0="form.by_id">
    <band_id/>
    <band_name/>
  </by>
</land>

Men blev nødt til at gøre følgende (pga. vores engine):

<by dataSrc="getBy" PARAM0="form.by_id">
  <by_id/>
  <by_name/>
  <land_id/>
</by>

<land dataSrc="getLand" PARAM0="form.land_id">
  <land_id/>
  <land_name/>
  <samlet_pct/>
</land>

Det betyder at for hver land jeg henter skal jeg løbe alle byer igennem for at få at hente alle byer i landet, dvs.:

<xsl:for-each select="/DOCUMENT/land">
    <xsl:for-each select="/DOCUMENT/transport">
    <xsl:if test="/DOCUMENT/land/land_id=land_id">
        //print by............
    </xsl:if>
    </xsl:for-each>
</xsl:for-each>

Problemet er (selvfølgelig) at alle byer bliver printet i alle lande. Hvordan får jeg fat i det nuværende land_id i den første <xsl:for-each .....>
Avatar billede ehf Nybegynder
07. april 2004 - 14:01 #1
Prøv at bruge en variabel

<xsl:for-each select="/DOCUMENT/land">
    <xsl:variable name="landid" select="land_id"/>
    <xsl:for-each select="/DOCUMENT/transport">
        <xsl:if test="land_id=$landid">
            //print by............
        </xsl:if>
    </xsl:for-each>
</xsl:for-each>
Avatar billede bhn.314 Nybegynder
07. april 2004 - 14:45 #2
Vores engine kan ikke håndtere $-tegn og derfor kan vi ikke bruge <xsl:if test="land_id=$landid">
Avatar billede bhn.314 Nybegynder
07. april 2004 - 14:48 #3
Ups, det var mig der har skrevet forkert - DET VIRKER - du har reddet min dag. Tak.....
Avatar billede ehf Nybegynder
07. april 2004 - 14:50 #4
Det var så lidt
og selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester