Avatar billede soc127754 Nybegynder
14. april 2004 - 10:48 Der er 10 kommentarer

Generere en hel webside

Jeg vil gerne generere en hel webside (der består af menu, brødkrummespor, indhold m.v.). For hver af disse har jeg noget xml og et xsl-stylesheet. Kan jeg hente hver af disse ind i et samlet xsl-stylesheet således at hele websiden kan genereres som html?
Avatar billede asp-rallye Nybegynder
14. april 2004 - 10:57 #1
Prøv at bruge disse komandore

<!--#include file="top.asp"--> Hvis filen man vil hente ind i en fil, ligger i samme mappe..
<!--#include virtual="/top.asp"--> Hvis fil man includer fra ligger i en undermappe, og filen man henter i en anden mappe!!
Avatar billede nute Nybegynder
14. april 2004 - 11:29 #2
asp-rallye >> dette har da intet med xslt at gøre

soc127754 >> det er en lidt vag beskrivelse du kommer med. Umiddelbart er mit svar "ja", men jeg regner ikke med at dette er et svar du er tilfreds med.

Forstår jeg dig ret med at du har din menu i én xml, dit brødkrummespor i en anden xml, indhold i en tredje xml osv ?

/nute
Avatar billede asp-rallye Nybegynder
14. april 2004 - 11:54 #3
okay.. troede bare det også ville virke i xslt
Avatar billede nute Nybegynder
14. april 2004 - 12:24 #4
asp-rallye >> mon ikke du bør finde ud hvad xslt ér, inden du poster misvisende kommentarer. fair nok at du tror det fungerer, men næste gang ... prøv at teste dine kommentarer/forslag inden du poster dem, så slipper man for at nogen bliver guidet i forkert retning

/nute
Avatar billede soc127754 Nybegynder
14. april 2004 - 12:49 #5
Jeg tænkte sådan set om jeg kunne have en xslt hvor der var nogle andre xlst'ere og xml'ere der blev indkluderet (for menu, for brødkrummespor osv.).
Avatar billede nute Nybegynder
14. april 2004 - 13:23 #6
du kan, i din ene xsl, inkludere andre xsl'er. Dette gøres vha. <xsl:include/> (http://www.w3schools.com/xsl/el_include.asp) eller <xsl:import/> (http://www.w3schools.com/xsl/el_import.asp).

Du kan også hente ind xml-filer, ved at bruge funktionen document(). JEg har lavet et hurtig eksempel.

********
menu.xml
********
<?xml version="1.0" encoding="UTF-8"?>
<menu>
    <item>Menu 1</item>
    <item>Menu 2</item>
    <item>Menu 3</item>
</menu>


***********
content.xml
***********
<?xml version="1.0" encoding="UTF-8"?>
<content>
    <page>
        <title>Side 1</title>
        <body>Bla bla bla</body>
    </page>
</content>

***********
menu.xsl
***********
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template name="menu">
        <table>
            <tr>
                <xsl:for-each select="document( 'menu.xml' )/menu/item">
                    <td>
                        <xsl:value-of select="."/>
                    </td>
                </xsl:for-each>
            </tr>
        </table>
    </xsl:template>
</xsl:stylesheet>

***********
content.xsl
***********
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:import href="menu.xsl"/>
    <xsl:template match="/">
        <xsl:call-template name="menu"/>
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="page">
    Titel: <xsl:value-of select="title"/>
        <br/>
    Body: <xsl:value-of select="body"/>
    </xsl:template>
</xsl:stylesheet>


prøv at transformere content.xml med content.xsl og menuen er inkluderet på din side. Det kan nok laves pænere, men dette er bare et hurtig eksempel

/nute
Avatar billede soc127754 Nybegynder
14. april 2004 - 15:32 #7
Tusind tak for det grundige svar. Har ikke prøvet det endnu, men det virker rigtigt. Indholdet min menu-xml er databasegenereret på baggrund af et parameterkald. Hvordan kan jeg gøre det med denne metode.
Avatar billede davidchristensen Praktikant
14. april 2004 - 15:48 #8
Det kan du ikke uden at lave noget fixfaxeri..

Skriv hellere din menu om til en xml-fil.. Der er jo heller ikke nogen egentlig grund til at menuen skal ligge i en database, som jeg ser det..
Avatar billede chrlyck Nybegynder
26. april 2004 - 10:44 #9
Jeg vil lige sige at jeg ikke kan se fordelen i at dele op i flere xml-filer, jeg ville lave én xml-fil og én xsl-fil.

<website>
<menupunkt titel=Side1>
<tekst>Bla bla</tekst>
</menupunkt>
<menupunkt titel=Side2>
<tekst>Bla bla bla</tekst>
</menupunkt>
</website>

Når laver du din menu ud fra menupunkter (med xsl) og når der klikkes på links læser du bare tilsvarende afsnit ud af din xml-fil (også med xsl)
Avatar billede nute Nybegynder
26. april 2004 - 10:56 #10
må sige jeg er enig med chrlyck. hvis man har menu separeret fra indhold, så skal man vedligeholde/synkronisere 2 xml'er. på mit website (www.xperimentum.com) bruger jeg blot én xml fil. på bagrund af denne, bliver menuen, og submenuen genereret. jeg slipper for flere transformeringer, da mit ene xsl laver alt arbejde
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