Avatar billede nute Nybegynder
03. maj 2002 - 15:33 Der er 5 kommentarer og
1 løsning

assigne variabler under runtime

jeg har følgende kode (utdrag):

<xsl:variable name="fileType"/>
<xsl:for-each select="file">
  <xsl:if test="$fileType != {minNode}">
    Skriv noe
  </xsl:if>
</xsl:call-template>

som er sånn sett fint nok. Det jeg ønsker, er å assigne verdien av {minNode} til $fileType *hvis* testen returnerer true. noe ála følgende pseudo kode:

<xsl:variable name="fileType"/>
<xsl:for-each select="file">
  <xsl:if test="$fileType != {minNode}">
    Skriv noe
    $fileType = <xsl:value-of select="{minNode}"/>
  </xsl:if>
</xsl:call-template>

noen som har et bud på hvordan det kan løses ?

På forhånd takk !

/nute
Avatar billede nute Nybegynder
03. maj 2002 - 15:40 #1
jeg kan jo fortelle at min XML er lignende denne:

<root>
  <file>
    <fileType value="jpg"/>
    <fileName value="et_navn"/>
  </file>
  <file>
    <fileType value="jpg"/>
    <fileName value="et_navn"/>
  </file>
  <file>
    <fileType value="gif"/>
    <fileName value="et_navn"/>
  </file>
  <file>
    <fileType value="jpg"/>
    <fileName value="et_navn"/>
  </file>
</root>

og jeg vil formattere mitt output følgende:

jpg
  et_navn
  et_navn
gif
  et_navn
  et_navn

/nute
Avatar billede nute Nybegynder
03. maj 2002 - 15:52 #2
</xsl:call-template> skal selvføglilig være </xsl:for-each>
Avatar billede janegil Nybegynder
06. maj 2002 - 13:21 #3
Variablen kan ikke "assignes" etter at den er definert. Men du kan godt ha mange variable med samme navn.

Så jeg tror det du skal, er å flytte xsl:variable inn i xsl:for-each løkken?
Avatar billede atn Nybegynder
18. maj 2002 - 01:59 #4
Hej Knut ! :o)

Du kan lige prøve denne XSLT kode på din ovenstående XML...

Venligst

<ATN/>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="root">
<html>
<head>
    <title>Tester</title>
</head>
<body>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
    <th colspan="2" bgcolor="#f5f5f5">JPG</th>
</tr>
    <xsl:for-each select="file">
        <xsl:if test="./fileType/@value = 'jpg'">
        <tr>
            <td><xsl:text disable-output-escaping="yes">&amp;nbsp;&amp;nbsp;&amp;nbsp;</xsl:text></td>
            <td>
                    <xsl:value-of select="./fileName/@value"/>
            </td>
        </tr>
        </xsl:if>
    </xsl:for-each>
<tr>
    <th colspan="2" bgcolor="#f5f5f5">GIF</th>
</tr>
    <xsl:for-each select="file">
        <xsl:if test="./fileType/@value = 'gif'">
        <tr>
            <td><xsl:text disable-output-escaping="yes">&amp;nbsp;&amp;nbsp;&amp;nbsp;</xsl:text></td>
            <td>
                    <xsl:value-of select="./fileName/@value"/>
            </td>
        </tr>
        </xsl:if>
    </xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Avatar billede nute Nybegynder
29. august 2002 - 19:25 #5
lukker
Avatar billede jgp Nybegynder
28. januar 2003 - 14:20 #6
Hej Nute,

Jeg tror jeg sidder med samme problem som dette, fandt du nogen sinde en løsning?

Mvh
Johannes
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