Avatar billede ibrene Nybegynder
27. november 2002 - 11:17 Der er 4 kommentarer og
1 løsning

Hva gør jeg galt, XML XSL

Hejsa

JEg har lavet denne kode med et xsl style sheet og en xml dokument, men der kommer ikke det ud som jeg vil forvente... faktisk kommer der slet ikke noget ud.

JEg er rimelig sikker på at mit xml dokument er som det skal være og problemet ligger i mit xml style sheet, men hvor?

mvh
ibrene

<%
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("tforhandlere.xml"))

set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("tforhandlere.xsl"))

Response.Write(xml.transformNode(xsl))
%>



<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/data">
    <xsl:value-of select="name"/>
    <xsl:value-of select="name"/>
    <xsl:value-of select="description"/>
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="/data">
    <xsl:for-each select="forhandlere/forhandler">
        <b><xsl:value-of select="fhaid"/></b><br/>
        <xsl:value-of select="forhandlernavn"/><br/>
        <xsl:value-of select="postnummer"/><br/>
        <xsl:value-of select="by"/><br/>
        <xsl:value-of select="adresse"/><br/>
        <xsl:value-of select="telefon"/><br/>
        <xsl:value-of select="fax"/><br/>
        <xsl:value-of select="email"/><br/>
        <xsl:value-of select="url"/><br/><br/>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>





<?xml version="1.0" encoding="iso-8859-1" ?>
<data>
    <name>tforhandler</name>
    <description>
        Forhandler data
    </description>
    <forhandlere>
        <forhandler>
            <fhaid>
                <number>000</number>
            </fhaid>
            <forhandlernavn>
                <string>Firmanvanv</string>
            </forhandlernavn>
            <postnummer>
                <number>1234</number>
            </postnummer>
            <by>
                <string>byernes by</string>
            </by>
            <adresse>
                <string>vej 19</string>
            </adresse>
            <telefon>
                <number>12345678</number>
            </telefon>
            <fax>
                <number>12345678</number>
            </fax>
            <email>
                <string>test@domain.dk</string>
            </email>
            <url>
                <string></string>
            </url>
        </forhandler>
    </forhandlere>
</data>
Avatar billede janegil Nybegynder
27. november 2002 - 11:31 #1
Det gir vel ingen mening å ha to templates med samme match? Bare én vil bli valgt?
Avatar billede ibrene Nybegynder
27. november 2002 - 11:39 #2
Hejsa

Du har ret, hvis jeg ligge dem ind i samme template så vil de faktisk blive vist.

Men jeg har et exsemple som hvis at man kan gøre noget alla dette:


<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/data">
    <xsl:value-of select="name"/><br/>
    <xsl:value-of select="description"/><br/><br/>
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="forhandlere">
    <xsl:for-each select="forhandler">
        <b><xsl:value-of select="fhaid"/></b><br/>
        <xsl:value-of select="forhandlernavn"/><br/>
        <xsl:value-of select="postnummer"/><br/>
        <xsl:value-of select="by"/><br/>
        <xsl:value-of select="adresse"/><br/>
        <xsl:value-of select="telefon"/><br/>
        <xsl:value-of select="fax"/><br/>
        <xsl:value-of select="email"/><br/>
        <xsl:value-of select="url"/><br/><br/>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

Og det er det som jeg er ude på og gerne ville...
Kan du give mig et godt bud på hva som gå galt her... tro det er noget med match og select som ikke når de rigtige steder hen.
mvh
ibrene
Avatar billede janegil Nybegynder
27. november 2002 - 11:46 #3
Det ser riktig ut. Kan det være at prosessoren din ikke har de riktige implisitte templates; at du skal definere eksplisitte templates for "number" etc.?
Avatar billede janegil Nybegynder
27. november 2002 - 11:47 #4
Prøv <xsl:apply-templates select="..."/> i stedet for <xsl:value-of select="..."/> ?
Avatar billede ibrene Nybegynder
27. november 2002 - 11:54 #5
Syntes ikke lige det gjorde den store forskel... men har accepteret den, da det første spørgsmål gjorde løsningen.
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