Avatar billede tberte1 Nybegynder
17. januar 2003 - 20:20 Der er 9 kommentarer og
1 løsning

Interne links i xsl

Jeg er ved at lave en hjemmeside som er baseret på xml/xsl, men jeg har et problem når jeg forsøger at lave interne links!
I html refererer man jo som bekendt til de interne links vhi http://sti/fil.html#internlink, men denne fremgangsmåde virker ikke når jeg referer til et xml dokumenter.

Håber der er nogen der kan hjælpe!
Avatar billede tberte1 Nybegynder
17. januar 2003 - 20:27 #1
Det er rigtig nok.....der er 200 point på spil
Avatar billede hells Nybegynder
17. januar 2003 - 20:59 #2
hvilken attribut bruger du? hvis du ikke bruger id, bør du prøve det
Avatar billede tberte1 Nybegynder
17. januar 2003 - 21:31 #3
hvad mener du?
Avatar billede tberte1 Nybegynder
17. januar 2003 - 21:40 #4
hvordan kan jeg bruge id....? jeg vil linke fra f.eks. min menu til et internt link som er defineret i mit xsl dok. men hvis jeg så laver et link som f.eks. ...billeder.xml#hus sker der intet når jeg trykker på det!
Avatar billede hells Nybegynder
18. januar 2003 - 13:09 #5
det jeg mener at at du bør bruge id på følgende måde:
<a id="hus"></a>

så bør du kunne linke til det sted med <a href="#hus">hus</a>
Avatar billede janegil Nybegynder
18. januar 2003 - 13:49 #6
Det er noen problemer med # i XML kontra HTML. http://sti/fil.html#internlink betyr at du loader HELE fil.html, og skroller ned til #internlink.

Men i XML skal vel egenlig http://sti/fil.xml#internlink bare referere det fragmentet av fil.xml som har id="internlink".

Dessuten er ikke et attributt i XML en ID barte fordi det heter "id". Det skal være deklarert som ID i DTD eller XML Schema (og kan til gjengjeld hete hva som helst). Men siden er browser ikke er forpliktet til å lese en eventuell DTD...en liten smule kaos.

I XML/XSLT sammenheng antar jeg at du transformerer til HTML? I så fall skal du nok sørge for at det er id'er i HTML'en, og håpe på at http://sti/fil.xml#internlink lenker til indterlink i det transformerte dokumentet. Men det er kanskje det du gjør allerede?

Kunne du ikke legge ut på nettet et minimalistisk eksempel på hva det er du gjør?
Avatar billede davidchristensen Praktikant
06. marts 2003 - 04:24 #7
Ja, du må lige forklare noget mere mht hvad det er du mener med interne links.. Vil du med .xsl kalde en intern template eller vil du genere et html-anchored link? Der er jo forskel..
Avatar billede davidchristensen Praktikant
06. marts 2003 - 04:38 #8
..et html-anchored link vil se nogenlunde sådan ud:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>

    <xsl:variable name="mine_links" select="document('information_jeg_linker_til.xml')/niveau_1"/>
   


    <xsl:template match="niveau_2">
        <td onmouseover="bgColor='#EFEFEF'" onmouseout="bgColor='red'" onclick="bgColor='#FFFFFF'">
            <a>
                <xsl:attribute name="href">
                    <xsl:value-of select="link"/>#<xsl:value-of select="@anchor"/>
                </xsl:attribute>
                <xsl:attribute name="target">
                    <xsl:value-of select="target"/>
                </xsl:attribute>
               
               
                <xsl:value-of select="tekst"/>
            </a>
        </td>
    </xsl:template>

</xsl:stylesheet>


xml'en vil så se ca. sådan ud:
<xml>
<niveau_1>
  <niveau_2>
    <link anchor="0001">
    <target>mainframe</target>
    <tekst>Blabla</tekst>
  </niveau_2>
  <niveau_2>
    <link anchor="0002">
    <target>mainframe</target>
    <tekst>Blabla</tekst>
  </niveau_2>
</niveau_1>

osv..

Håber det ka' bruges bare lidt.. Men sig nu hvad du vil lidt mere præcist :)


David
-
Avatar billede davidchristensen Praktikant
06. marts 2003 - 04:47 #9
og, nåja.. den xsl-fil du så henter denher template ind i ser ca. sådan ud:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   
    <xsl:include href="navnet_paa_det_xslstylesheet_som_du_opretter_variablen_i.xsl" />
    <xsl:output method="html"/>
   
    <xsl:template match="/">
        <html>
            <body>
                          <table border="1" align="right">
                                                              <tr>
                                                            <xsl:apply-templates select="$mine_links/niveau_2" />
                                                            </tr>
                                                    </table>
                </body>
        </xsl:template>
</xsl:stylesheet>
Avatar billede davidchristensen Praktikant
25. august 2003 - 15:37 #10
hola.. tak for det. er det ik lidt vel rigeligt med point?

David
-
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