Avatar billede tele_lucien Nybegynder
24. juni 2002 - 09:14 Der er 13 kommentarer og
2 løsninger

Genbrug af templates?

Hej med jer.....jeg er newbie i det her, så jeg har lige et par spørgsmål ang. <xsl:templates>, og lidt andet:

1. Skal man lave et xslt document til hver xml document. Jeg tænker her på hvis man laver et website? Åltså så man f.eks. har en index.xml laver man også en index.xsl, profil.xml og en profil.xsl, eller hvordan?

2. Kan man ikke genbruge de templates man laver, så de fungere som ssi. Altså så man laver en side med templates og trækker dem man skal bruge ud på de sider man har?

Håber der at høre fra jer.

Med venlig hilsen Lucien

P.S. XML og XSLT styrrer for vildt!
Avatar billede janegil Nybegynder
24. juni 2002 - 10:23 #1
For å holde terminologien ren, så er det nok ikke templates - men style sheets - du kan gjenbruke. Hvordan du gjenbruker dem, avhenger av hvor du utfører XSLT-transformasjonen. Hvis du transformerer i IE-browseren, som fx. http://heima.olivant.fo/~styrheim/xml/prisliste/prisliste.xml, kan du bruke http://heima.olivant.fo/~styrheim/xml/prisliste/prisliste.xsl til å transformere andre prislister også.
Avatar billede tele_lucien Nybegynder
24. juni 2002 - 11:18 #2
Hejsa.........okay. Tak skal du have. Jeg er helt med på hvad du mener. Men vil det sige at hvis jeg vil lave et helt website i xml, xslt og css og der er den samme menu f.eks. på alle siderne skal jeg så bare ligge alle xslt referencerne <?xml:stylesheet type="text/xsl" href="index.xsl"?> <?xml:stylesheet type="text/xsl" href="prisliste.xsl"?> i toppen af index.xml siden.

Jeg har lidt svært ved at forklare det. Men hvis jeg vil lave et website i xml, xslt og css, hvordan ville du så gøre det? Lave et seperat xslt dokument til alle dine xml filer?
Avatar billede janegil Nybegynder
24. juni 2002 - 11:51 #3
Hvis jeg skulle lage en XML-basert site, ville jeg gjerne hatt hele siten som ett XML-dokument. Så ville jeg brukt server-side eller off-line XSLT til å generere sidene i siten fra det ene hoveddokumentet.

Deretter ville jeg brukt XSLT på hvert enkelt XML-dokument for å generere HTML, hvis du kan klare deg med versjon 6 av IE og Netscape kan det kjøre i klienten, hvis ikke, må det kjøre i serveren.

De genererte HTML-dokumentene kan inneholde CSS sstyle-attributter, og de kan inneholde LINK-elementer som henviser til et eksternt CSS-sheet.

roblemet med de menyene som er like i alle sidene, er gjerne at de ikke er HELT like. Sammenlign fx http://landsbank.fo/index.cfm/18.html med http://landsbank.fo/index.cfm/21.html.
Avatar billede tele_lucien Nybegynder
24. juni 2002 - 12:08 #4
Okay kanon..........Lige et spørgesmål til: "Så ville jeg brukt server-side eller off-line XSLT til å generere sidene i siten fra det ene hoveddokumentet". Det led du taler om her, ved jeg ikke noget om. Jeg forstår det med det xml hoveddokument, men off-line xslt?

Deretter ville jeg brukt XSLT på hvert enkelt XML-dokument for å generere HTML?: Vil det sige at du f.eks. bruger asp kode til at lave de udtræk på xml hoveddokumentet du skal bruge på de pågældende sider. Altså asp'en spytter det xml ud du har valgt og derefter bruger du xslt til at generere html.

Jeg kunne snakke i time vis med dig om det her, fordi jeg syntes det er så fedt. Er du webdesigner?

Jeg er webdesigner og jeg interessere mig så meget for de nye teknologier. :-)

P.S. Kan du anbefale nogle rigtig gode bøger, om hvordan man bygger websites i xml, xslt, css?
Avatar billede janegil Nybegynder
24. juni 2002 - 14:12 #5
Offline XSLT: Jeg tenker på Sablotron fra www.gingerall.cz. Den kjører effektivt, og mye av dynamikken vi har på ASP og Cold Fusion er redundant, vi genererer samme forbannede fil om og om igjen. Så jeg ville, hver gang noe var endret i hoved-XML'en, kjøre en Sablotronbatch som genererer alle del-XML'ene på nytt, og FTP'e dem ut til webserveren.

Men noe er nå genuint dynamisk også, og bør lages på sparket.

Nei, jeg er tekniker, ikke designer. XSLT burde kunne bli et godt verktøy til å skille ut det visuelle designet som en isolert oppgave.

XSL Companion (ISBN 0-201-67487-4) er en god bok om XSL. Men om XML sites...tror ingen riktig har styr på det. Hver gang jeg har funnet et produkt som gjør denslags, viser det seg at det er kjøpt opp av noen som levererer "løsninger". Det mangler for mange biter omkring integrasjon av custom XML i XHTML, og omvendt, og det mangler standarder for å knytte XML- og XSLT-filene sammen. Å la XML-fila selv styre hvilken XSLT-fil som skal brukes (som i prisliste.xml) er mildt sagt alt for lite fleksibelt.
Avatar billede jakobandersen Nybegynder
24. juni 2002 - 17:36 #6
tele_lucien> Det jeg går udfra forvirrer dig er hvorfor du laver en template i dit XSL dokument men ikke kan bruge den i et andet, dette kunne f.eks. være en menu.

Hvis det er ovenstående du ønsker kan du lægge en template ud i en seperat fil og så importere den vha. <xsl:import> og gøre brug af den på din side.

Der er meget mere info at hente her:
http://www.jenitennison.com/xslt/

Hvis du også ønsker at gemme data i dit stylesheet til f.eks. din menu kan det også lade sig gøre.
Avatar billede tele_lucien Nybegynder
25. juni 2002 - 09:34 #7
Hej Moonduck. Der kan man bare se, det var lige præcis det jeg ledte efter!!!! Tusind tak. Skal den fil der indeholder templaten hede .xsl som filformatet? Og hvordan skal referencen se ud til den eller de template filer jeg laver?

Det er genialt det sprog her.........
Avatar billede jakobandersen Nybegynder
25. juni 2002 - 10:23 #8
Filen du importerer skal hedde xsl og være helt ligesom et almindeligt xslt ark.

Et eksempel kunne være:

[dintemplate.xsl:]
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template name="dintemplate">
              Din genbrugelige kode her.
    </xsl:template>
</xsl:stylesheet>

[side.xsl]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="/sti/til/dintemplate.xsl" />
<xsl:template match="/">
    fkjdsf kkfjfkfjks kfjhfkj sfds
    <xsl:call-template name="dintemplate" />
fdsf s fsdf sdf
</xsl:template>
</xsl:stylesheet>
Avatar billede tele_lucien Nybegynder
25. juni 2002 - 11:23 #9
YES!!!!!!!!!!! Har lige lavet et eksempel og det kører! TUSIND tak......... :-)

Har du arbejdet med det længe?
Avatar billede jakobandersen Nybegynder
25. juni 2002 - 11:25 #10
Ja.

For min arbejdsplads har vi udviklet et Webbaseret CRM-system sombruger XML og XSLT for at kunne bruges på både PC'ere PDA'ere osv.
Avatar billede tele_lucien Nybegynder
25. juni 2002 - 11:37 #11
Okay det lyder fedt.........!! Men hvad er et Webbaseret CRM-system?

Hvis jeg må spørge,-

Har du ellers nogle gode bøger du kan anbefale omkring xml og xslt til web?
Avatar billede jakobandersen Nybegynder
25. juni 2002 - 11:41 #12
Den efter min mening ubestrideligt bedste bog om XSLT er O'reiilys XSLT reference

http://www.oreilly.com/catalog/xslt/toc.html

Og mht. XML har O'reilly også et godt bud:
http://www.oreilly.com/catalog/learnxml/toc.html
Avatar billede tele_lucien Nybegynder
25. juni 2002 - 11:56 #13
OKay, takker mange gange. Men hvad er et Webbaseret CRM-system?

Kender du Wrox, de skulle også ha lavet en hel del fede bøger?
Avatar billede jakobandersen Nybegynder
25. juni 2002 - 11:58 #14
WROX's bøger handler mest om sammenhængen mellem XML/XSLT og andre teknologier(f.eks. ASP og ASP.NET).

Et CRM system er et Customer Relation Manegement system med styring af aktiviteter,ordrer osv. på de forskellige kunder.
Avatar billede tele_lucien Nybegynder
25. juni 2002 - 12:59 #15
Hej igen...........håber ikke det gør noget at skriver igen igen igen. Hehe. Er det den rigtige måde at implementere et flash object i et xsl dokument?

Eks.:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
    <html>
        <head>
            <title>s t a r t s i d e</title>
            <link rel="stylesheet" type="text/css" href="css/global.css"/>
            <link rel="stylesheet" type="text/css" href="css/links.css"/>
            <script language="JavaScript1.2" type="text/javascript" src="JScript/fade.js"></script>
            <script language="JavaScript1.2" type="text/javascript" src="JScript/popup.js"></script>
        </head>
        <body>
            <table id="menu" style="width: 650px; height: auto;" align="top" cellpadding="0" cellspacing="0" boder="0">
                <tr>
                    <xsl:apply-templates select="projektet/projekt/projekttop"/>
                </tr>
            </table>
            <table id="tab000" style="width: 650px; height: 550px;" cellpadding="0" cellspacing="0" border="0">
                <tr>
                    <td align="left" valign="top">
                        <table id="tab001" style="width: 450px; height: 200px;" cellpadding="0" cellspacing="0" border="0">
                            <tr>
                                <td>
                                    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="214" height="200" id="woman">
                                    <param name="movie" value="swf/woman.swf"/>
                                    <param name="quality" value="high"/>
                                    <param name="bgcolor" value="#f7fae5"/>
                                    <embed src="swf/woman.swf"
                                          quality="best"
                                          bgcolor="#f7fae5"
                                          width="214"
                                          height="200"
                                          name="woman"
                                          type="application/x-shockwave-flash"
                                          pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
                                    </object>
                                </td>
                                <td align="right">
                                    <xsl:apply-templates select="projektet/projekt/projektboxtopvenstre"/>
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td align="right" valign="top">
                        <table id="tab002" style="width: 200px; height: 200px;" cellpadding="0" cellspacing="0" border="0">
                            <tr>
                                <td align="center" valign="top">
                                    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="200" height="200" id="newz">
                                    <param name="movie" value="swf/newz.swf"/>
                                    <param name="quality" value="best"/>
                                    <param name="bgcolor" value="#ffffff"/>
                                    <embed src="swf/newz.swf"
                                          quality="best"
                                          bgcolor="#ffffff"
                                          width="200"
                                          height="200"
                                          name="newz"
                                          type="application/x-shockwave-flash"
                                          pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
                                    </object>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>   
                <tr>
                    <td align="center" valign="middle">
                        <table id="tabclean" style="width: 100%; height: 100%;" cellpadding="5" cellspacing="0" border="0">
                            <tr>
                                <td align="center" valign="middle" rowspan="2">
                                    <xsl:apply-templates select="projektet/projekt/projektbox01/instruktoerer01/inhold01"/>
                                </td>
                                <td align="center" valign="middle">
                                    <table id="tabclean" style="width: 255px; height: 100%;" cellpadding="5" cellspacing="0" border="0">
                                        <tr>
                                            <td height="20" align="center" valign="middle"><b><a href="profil.xml" id="lnk02">Hvem er vi?</a></b></td>
                                        </tr>
                                        <tr>
                                            <td id="box02" height="100" align="left" valign="top">
                                                <xsl:apply-templates select="projektet/projekt/projektbox02"/>
                                                <br />
                                                <br />
                                                Læs mere om Super8 klik <a href="profil.xml" id="lnk02">her</a>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td height="30" align="center" valign="middle"><b><a href="nyhedsbrev.xml" id="lnk02">Nyhedsbrev</a></b></td>
                                        </tr>
                                        <tr>
                                            <td height="100" align="left" valign="top">
                                                <xsl:apply-templates select="projektet/projekt/projektbox03"/>
                                                <br />
                                                <br />
                                                Klik <a href="nyhedsbrev.xml" id="lnk02">her</a> for at tilmelde dig vores nyhedhedsbrev
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td align="center" valign="top">
                        <table id="tab006" style="width: 200px; height: 100%;" cellpadding="0" cellspacing="0" border="0">
                            <tr>
                                <td align="center" valign="top"><iframe src="../super8/iframe_newz.asp" width="200" height="320" frameborder="0" scrolling="auto"></iframe></td>
                            </tr>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td align="center" valign="top" colspan="2">
                        <xsl:apply-templates select="projektet/projekt/projektbund/address"/>
                    </td>
                </tr>
            </table>
        </body>
    </html>
</xsl:template>

<!-- Match projekttop-element. Menu -->
<xsl:template match="projekttop">
    <td>
        <table id="menu" style="width: 654px; height: auto;" align="top" cellpadding="3" cellspacing="0" border="0">
            <tr>
                <td id="menudataleft" align="center" valign="middle"><a href="index.xml" id="lnk03"><xsl:value-of select="menu01"/></a></td>
                <td id="menudata" align="center" valign="middle"><a href="profil.xml" id="lnk03"><xsl:value-of select="menu02"/></a></td>
                <td id="menudata" align="center" valign="middle"><a href="medlemmer.xml" id="lnk03"><xsl:value-of select="menu03"/></a></td>
                <td id="menudata" align="center" valign="middle"><a href="undervisere.xml" id="lnk03"><xsl:value-of select="menu04"/></a></td>
                <td id="menudata" align="center" valign="middle"><a href="links.xml" id="lnk03"><xsl:value-of select="menu05"/></a></td>
                <td id="menudata" align="center" valign="middle"><a href="#" id="lnk03"><xsl:value-of select="menu06"/></a></td>
                <td id="menudataright" align="center" valign="middle"><a href="kontakt.xml" id="lnk03"><xsl:value-of select="menu07"/></a></td>
            </tr>
        </table>
    </td>
</xsl:template>

<!-- Match projektsubtop-element. -->
<xsl:template match="projektboxtopvenstre">
    <xsl:element name="img">
        <xsl:attribute name="src"><xsl:value-of select="foto"/></xsl:attribute>
        <xsl:attribute name="width">236</xsl:attribute>
        <xsl:attribute name="height">200</xsl:attribute>
    </xsl:element>
</xsl:template>

<!-- Match instruktoerer01-element.-->
<xsl:template match="inhold01">
    <table id="tabclean" style="width: 170px; height: 100%;" cellpadding="10" cellspacing="0" border="0">
        <tr>
            <td id="box03" align="center" valign="middle"><a href="medlemmer.xml" id="lnk02">Medlemmere</a></td>
        </tr>
        <tr>
            <td id="box01" align="left" valign="top">
                <ol type="square">
                    <li><a href="medlemmer.xml" id="lnk02"><xsl:value-of select="medlema"/></a></li>
                    <br />
                    <br />
                    <li><a href="medlemmer.xml" id="lnk02"><xsl:value-of select="medlemb"/></a></li>
                    <br />
                    <br />
                    <li><a href="medlemmer.xml" id="lnk02"><xsl:value-of select="medlemc"/></a></li>
                    <br />
                    <br />
                    <li><a href="medlemmer.xml" id="lnk02"><xsl:value-of select="medlemd"/></a></li>
                    <br />
                    <br />
                    <li><a href="medlemmer.xml" id="lnk02"><xsl:value-of select="medleme"/></a></li>
                    <br />
                    <br />
                    <li><a href="medlemmer.xml" id="lnk02"><xsl:value-of select="medlemf"/></a></li>
                </ol>
                <br />
                <br />
                    Klik på en af medlemmer-
                    ne og læs mere om dem.
            </td>
        </tr>
    </table>
</xsl:template>

<!-- Match videmere-element.-->
<xsl:template match="projektbox02">
    <xsl:value-of select="videmere"/>
</xsl:template>

<!-- Match nyhedsbrev-element.-->
<xsl:template match="projektbox03">
    <xsl:value-of select="nyhedsbrev"/>
</xsl:template>

<!-- Match projektbottom-element. -->
<xsl:template match="address">
    <table id="tab004" style="width: 640px; height: 30px;" cellpadding="0" cellspacing="0" border="0">
        <tr>
            <td align="center" valign="middle"><xsl:value-of select="firma"/></td>
            <td align="center" valign="middle"><xsl:value-of select="mellemrum"/></td>
            <td align="center" valign="middle"><xsl:value-of select="gade"/></td>
            <td align="center" valign="middle"><xsl:value-of select="mellemrum"/></td>
            <td align="center" valign="middle"><xsl:value-of select="postnummer"/></td>
            <td align="center" valign="middle"><xsl:value-of select="by"/></td>
            <td align="center" valign="middle"><xsl:value-of select="mellemrum"/></td>
            <td align="right" valign="middle"><xsl:value-of select="email01"/></td>
            <td align="center" valign="middle"><a href="kontakt.xml" id="lnk02"><xsl:value-of select="email02"/></a></td>
        </tr>
    </table>
</xsl:template>
</xsl:stylesheet>
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