Avatar billede mvb Nybegynder
23. december 2003 - 10:46 Der er 2 kommentarer og
2 løsninger

XSL transformering

Jeg vil ret gerne transformere denne her xml fil til html.
<?xml version="1.0"?>
<top>
    <level1>a</level1>
    <level1>b</level1>
    <level1>c</level1>
    <level1>d</level1>
</top>

Jeg havde forestillet mig at gøre det med denne her:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
          <head/>
          <body>
                <table border="1">
                    <tr>
                        <td>level1</td>
                        <td>level1</td>
                        <td>level1</td>
                        <td>level1</td>
                    </tr>
                    <xsl:apply-templates select="/top/level1"/>
                </table>
            </body>
        </html>
</xsl:template>

<xsl:template match="level1">
    <td><xsl:value-of select="/top/level1"/></td>
</xsl:template>

</xsl:stylesheet>

Mit problem er, at resultatet bliver sådan her:
level1 level1 level1 level1
a a a a

og det skulle have være sådan her:
level1 level1 level1 level1
a b c d

Jeg må jo have lavet en smutter et sted. Er der nogen, der har et forslag?
Avatar billede atoft Nybegynder
23. december 2003 - 10:51 #1
ja du mangler jo

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
          <head/>
          <body>
                <table border="1">
                    <tr>
                        <td>level1</td>
                        <td>level1</td>
                        <td>level1</td>
                        <td>level1</td>
                    </tr>
                    <xsl:apply-templates select="/top/level1"/>
                </table>
            </body>
        </html>
</xsl:template>
Avatar billede atoft Nybegynder
23. december 2003 - 10:53 #2
Ups det var en smutter. Sådan her skal det se ud. Du mangler en tr og så skal du ikke tage fat i top/level1 hvergang men den aktuelle node = .

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
          <head/>
          <body>
                <table border="1">
                    <tr>
                        <td>level1</td>
                        <td>level1</td>
                        <td>level1</td>
                        <td>level1</td>
                    </tr>
<tr>
                    <xsl:apply-templates select="/top/level1"/>
</tr>
                </table>
            </body>
        </html>
</xsl:template>


<xsl:template match="level1">
    <td><xsl:value-of select="."/></td>
</xsl:template>
Avatar billede janegil Nybegynder
23. december 2003 - 10:53 #3
Prøv med <xsl:apply-templates/> uten select, enklere er ofte bedre.
Avatar billede mvb Nybegynder
23. december 2003 - 11:02 #4
I er for skarpe - thanx.
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





White paper
Rapport kortlægger de 13 bedste muligheder for at sætte turbo på din cloud computing