Avatar billede juggalo Nybegynder
22. april 2003 - 12:09 Der er 12 kommentarer og
1 løsning

ingen </TABLE>?!?!? Hjæælp

jeg har følgende XSLT stylesheet:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" version ="1.0" >
<xsl:output method = "html" />

    <xsl:template match="s:Schema/s:ElementType">
        <TABLE>
        <TR>
        <xsl:for-each select="s:AttributeType">
            <TD>
            <xsl:value-of select="@name"/>
            </TD>
        </xsl:for-each>
        </TR>
        <xsl:call-template name="rows"/>
        </TABLE>
    </xsl:template>

    <xsl:template match="z:row" name="rows">
        <TR>
        <xsl:for-each select="(@*)">
            <TD>
            <xsl:value-of select="."/>
            </TD>
        </xsl:for-each>
        </TR>
    </xsl:template>

</xsl:stylesheet>

XML'en får jeg fra et recordset fra en SQL server.

Alt virker sådan set godt nok, men af en eller anden årsag får jeg ikke mit </TABLE> med ud - hvorfor??

Desuden er det ret træls at mine <TR og <TD tags får "xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" smidt på... det må da kunne undgåes på en eller anden måde....

Hjælp ville være "greatly appreciated"
Avatar billede janegil Nybegynder
22. april 2003 - 12:21 #1
kan du ikke bare fjerne "xmlns:z..." fra headeren i stilarket?
Avatar billede Slettet bruger
22. april 2003 - 12:46 #2
Uønskede namespaces fjernes med attributten "exclude-result-prefixes" på "stylesheet" elementet:

<xsl:stylesheet
  xmlns:xsl="..."
  xmlns:rs="..."
  xmlns:z="..."
  xmlns:s="..."
  exclude-result-prefixes="z rs s"
>

Hvis det KUN er "</TABLE>" du ikke får ud, går der noget galt undervejs som stopper processen - er du sikker på "<TABLE>" kommer ud?

/CS
Avatar billede juggalo Nybegynder
22. april 2003 - 12:56 #3
<TABLE> kommer fint ud i starten, og al data kommer også ud - så derfor kan jeg ikke umiddelbart tilslutte mig din vurdering
Avatar billede janegil Nybegynder
22. april 2003 - 13:05 #4
'match="z:row"'
i
<xsl:template match="z:row" name="rows">
virker unødvendig, selv om jeg ikke kan se den skulle gjøre noen skade?
Avatar billede juggalo Nybegynder
22. april 2003 - 13:11 #5
hvis jeg fjerner den får jeg ikke længere "data-rækkerne" fra recordsettet, så derfor er den ganske nødvendig.... Det mystiske er, at hvis jeg fjerner den, så kommer </TABLE> med ud.... sjovt ik'?! (NOT)
Avatar billede juggalo Nybegynder
22. april 2003 - 13:21 #6
en anden mystisk ting; hvis jeg fjerner </TABLE> tag'et, så får jeg en fejl ala "document not welformed"
Avatar billede hoejrup Nybegynder
22. april 2003 - 13:36 #7
Har du prøvet denne metode?

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" version ="1.0" >
<xsl:output method = "html" />
<xsl:template match="s:Schema/s:ElementType">
        <TABLE>
        <TR>
            <TD>
            <xsl:for-each select="s:AttributeType">
            <xsl:value-of select="@name"/>
            </xsl:for-each>
            <xsl:call-template name="rows"/>
            </TD>
        </TR>
        </TABLE>
        <TR>
            <TD>
            <xsl:template match="z:row" name="rows">
            <xsl:for-each select="(@*)">
            <xsl:value-of select="."/>
            </xsl:for-each>
            </TD>
        </TR>
</xsl:template>
</xsl:stylesheet>

/per
Avatar billede juggalo Nybegynder
22. april 2003 - 13:40 #8
hoejrup> jeg får en "not well-formed" fejl
Avatar billede hoejrup Nybegynder
22. april 2003 - 13:54 #9
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" version ="1.0" >
<xsl:output method = "html" />
<xsl:template match="s:Schema/s:ElementType">
<BODY>
        <table>
        <tr>
            <td>
            <xsl:for-each select="s:AttributeType">
            <xsl:value-of select="@name"/>
            </xsl:for-each>
            <xsl:call-template name="rows"/>
            </td>
        </tr>
        </table>
        <tr>
            <td>
            <xsl:template match="z:row" name="rows">
            <xsl:for-each select="(@*)">
            <xsl:value-of select="."/>
            </xsl:for-each>
            </td>
        </tr>
</xsl:template>
</xsl:stylesheet>
</body>
Avatar billede hoejrup Nybegynder
22. april 2003 - 13:56 #10
Prøv igen:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" version ="1.0" >
<xsl:output method = "html" />
<xsl:template match="s:Schema/s:ElementType">
<body>
        <table>
        <tr>
            <td>
            <xsl:for-each select="s:AttributeType">
            <xsl:value-of select="@name"/>
            </xsl:for-each>
            <xsl:call-template name="rows"/>
            </td>
        </tr>
        <tr>
            <td>
            <xsl:template match="z:row" name="rows">
            <xsl:for-each select="(@*)">
            <xsl:value-of select="."/>
            </xsl:for-each>
            </td>
        </tr>
        </table>
</xsl:template>
</xsl:stylesheet>
</body>

/per
Avatar billede juggalo Nybegynder
22. april 2003 - 14:02 #11
samme - men du forsøger jo også at køre templates indeni hinanden, hvilket jeg ikke mener at man kan
Avatar billede hoejrup Nybegynder
22. april 2003 - 14:33 #12
Selvfølgelig kan man ikke køre template indeni hinanden, jeg havde bare overset noget kode.

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" version ="1.0" >
<xsl:output method = "html" />
<body>
        <table>
        <tr>
            <td>
            <xsl:template match="s:Schema/s:ElementType">
                <xsl:for-each select="s:AttributeType">
                    <xsl:value-of select="@name"/>
                </xsl:for-each>
                <xsl:call-template name="rows"/>
            </xsl:template>
            </td>
        </tr>
        <tr>
            <td>
            <xsl:template match="z:row" name="rows">
                <xsl:for-each select="(@*)">
                    <xsl:value-of select="."/>
                </xsl:for-each>
            </xsl:template>
            </td>
        </tr>
        </table>
</xsl:stylesheet>
</body>

/per
Avatar billede hoejrup Nybegynder
24. april 2003 - 15:25 #13
Fandt du en løsning?

/per
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