Avatar billede agony3 Nybegynder
31. oktober 2002 - 17:16 Der er 9 kommentarer og
1 løsning

udskrivning fra xml dokument med xslt

Jeg har et xml dokument som jeg udskriver fra med xslt. Problemet er at jeg på den side gerne vil have et link til en anden side hvor jeg igen bruger xslt til at udskrive fra samme xml. Hvordaan gør jeg lige det når henvisningen til xslt dokumentet står i selve xml dokumentet.
Avatar billede medions Nybegynder
31. oktober 2002 - 17:31 #1
XML dokumentet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="default.xsl"?>
<rod>
<titel>.:: Webcorner ::.</titel>

<sektion id="1">
<link id="1">Referencer</link>
<link id="2">Pakker</link>
<link id="3">Profil</link>
<link id="4">Kontakt</link>
</sektion>

</rod>

XSL dokumentet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
                xmlns:dt="urn:schemas-microsoft-com:datatypes"
                xmlns:d2="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
  <xsl:template match="/" >
    <html>
      <head>
      <title><xsl:value-of select="rod/titel"/></title>
     
     
      <STYLE>
      <!-- Faveskift ved link -->
        A:Link {
        COLOR: BLACK; TEXT-DECORATION: None
        }
        A:Hover {
        COLOR: BLACK; TEXT-DECORATION: Underline
        }
      </STYLE>
     
     
      </head>
      <body>
        <table align="center">
        <tr>
          <td width="600" style="background-color: #9A0E23;" valign="top">
         
            <!-- Top menu -->
            <table>
            <tr align="center">
            <xsl:for-each select="rod/sektion[@id='1']/link">
              <td width="200" style="background-color: #FFFFFF;font-family:verdana;font-size: 8pt;">
             
            <a>
                <xsl:attribute name="href">

                <xsl:value-of />.xml
                 
                </xsl:attribute>
               
                [<xsl:value-of />]
            </a>
             
              </td>   
            </xsl:for-each>       
            </tr>
            </table>   
            <!-- /Top menu -->
           
           
           
            <!-- Index -->
            <table>
            <tr align="center">
              <td width="600" height="350" style="background-color: #EBE7DE;font-family:verdana;font-size: 8pt;">
             
              <table>
              <tr>
                <td Valign="Top"><img src="img/logo.gif" width="120" height="180" /></td>
                <td width="300" style="font-family:verdana;font-size: 8pt;">
              WebCorner er en virksomhed der udvikler websites i tæt samarbejde med vore kunder.
                Vi sætter fokus på, at kundens website går direkte i centrum.
                <p/>
                Vi sætter også stor pris på, at der bliver leveret den rigtige vare, og dermed at gøre kunden tilfreds.
                Der vil blive ydet en stor service fra vores side i sammenhæng med updateringer samt rettelser, hvis ønsket.
              <p/>
              Et domænenavn der fungerer godt på nettet er afgørende for, at kunderne finder frem til netop jeres produkter.
                </td>
              </tr>
              </table>
             
              </td>
            </tr>
            </table>   
            <!-- /Index -->
     
          </td>
        </tr>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

//>Rune
Avatar billede agony3 Nybegynder
31. oktober 2002 - 17:35 #2
medions << Kan ikke se hvordan dit indlæg skulle være et svar på mit problem.

I dit xml har du:
<?xml-stylesheet type="text/xsl" href="default.xsl"?>
og det er der ikke noget forkert i, men hvad hvis man har flere xslt dokumenter som skal udskrive fra samme xml ???
Avatar billede medions Nybegynder
31. oktober 2002 - 17:36 #3
Sorry, så meget har jeg desværet ikke arbejdet med XSL... Men mener egentlig ik' man kan det! -Så skulle det været en eller anden form for include!

//>Rune
Avatar billede janegil Nybegynder
31. oktober 2002 - 19:26 #4
:o(
Det er det triste: Det er ingen standard måte et stilark kan velge sin XML input, ingen standard måte en 3.part kan koble sammen XML og XSLT. Det ER standard at et XML-dokument kan gi deg flere stilark å velge mellom, men det er ikke implementert i IE - IE velger det første stilarket, og ignorerer de andre.

Så du skal sy det sammen på server-siden. I prinsippet kan du gjøre det med COM-skripting i en IE-klient; i praksis fungerer det ikke, bl.a. fordi standard sikkerhetsinnstilling i IE forbyr at du henter XML og XSLT fra hvert sitt domene. Sml. http://landsbank.fo/test/prisliste.xml med http://heima.olivant.fo/~styrheim/xml/prisliste/prisliste.xml.
Avatar billede simon.ulsnes Nybegynder
31. oktober 2002 - 19:26 #5
Det kan lade sig gøre, eksempelvis med PHP eller en anden form for server-side scripting som, alt efter de parametre som gives til siden, skriver noget forskelligt i href-attributten i xml-stylesheet-tagget.

Din XML-fil skal altså laves til en PHP/ASP/hvad du nu synes fil.

// Simon
// This sentence no verb.
Avatar billede simon.ulsnes Nybegynder
31. oktober 2002 - 19:28 #6
Du kan også vælge simpelthen at parse hele dit XML-dokument mod en XSLT-fil på serveren og så returnere HTML'en. Så bliver det også kompatibelt med andre browsere end IE...
Avatar billede janegil Nybegynder
31. oktober 2002 - 19:41 #7
Hau, hau! XSLT-styling er kompatibelt med IE6+, Netscape 6+ og Mozilla. (Men ikke Opera 6.)
Avatar billede agony3 Nybegynder
31. oktober 2002 - 20:37 #8
Det virker somom xslt er ret begrænset. Jeg tror jeg prøver med noget ASP.
Avatar billede Slettet bruger
31. oktober 2002 - 20:53 #9
Hvad kan jeg sige: "XMLObject()" - that's exactly why I built it...

http://www.greystate.dk/xmlobject/

Fidusen med IKKE at sende XML'en ud til browseren er åbenlys: Det har nu taget Microsoft [indsæt stort tal] år at implementere under halvdelen af CSS1 standarden (Opera kan det *hele* + 80% af CSS2) - hvornår tror I at XSLT opfører sig "ens" i alle browsere???

/CS
Avatar billede janegil Nybegynder
31. oktober 2002 - 21:17 #10
Jeg tror browserne vil konvergere raskere på XSLT enn på CSS.

Begrunnelse: XSLT er i en viss forstand en 'ferdig' standard når den er et komplett programmeringsspråk, mens CSS hele tiden kommer til å bli utvidet med nye features, det er MENINGEN at ingen browser har implementert hele CSS, hvilke deler av CSS som er implementert, er en av parametrene som browserne skal konkurrere på.

Denne konkurransen er nokså enestående, det er ikke ofte man ser software konkurrere om hvem som har flest features, SAMTIDIG som de holder seg innenfor samme standard.
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