---
title: "Nybörjare XSL(T)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/128195-nybörjare-xsl-t"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "aron"
published: "2005-05-13T17:39:24.000Z"
updated: "2005-07-02T19:12:45.000Z"
replies: 10
views: 585
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/xml/128195-nybörjare-xsl-t"
---

# Nybörjare XSL(T)

## #1 — aron, 2005-05-13T17:39Z

Sitter och pysslar med XSL(T) och funderar över hur man kan formatera min XML-fils utseende (alltså inte med CSS eller nåt sånt, det vet jag hur man gör).

Detta är min XML-Fil:

```
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>

<dokument>
<färg>green</färg>
<dokument-titel>Detta är ett XML/XSL test.</dokument-titel>
<artickel>
    <rubrik>Detta är första rubriken</rubrik>
    <datum>2005-05-05</datum>
    <text>Hej, jag ska testa lite grejor</text>
</artickel>
<artickel>
    <rubrik>Detta är andra rubriken</rubrik>
    <datum>2005-05-05</datum>
    <text>Hej, jag ska testa lite grejor</text>
</artickel>
<ordbok>
	<ord>
		<ordet>XML</ordet>
		<beskrivning>eXtensibleMarkupLanguage</beskrivning>
	</ord>
	<ord>
		<ordet>HTML</ordet>
		<beskrivning>HyperTextMarkupLanguage</beskrivning>
	</ord>
</ordbok>
</dokument>
```

 

Min XSL(T)-Fil:

```
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  
<xsl:template match="/">
    <html>
         <head>
             <title><xsl:value-of select="dokument/dokument-titel"/></title>
         </head>
         <body>
           <xsl:attribute name="bgcolor">
             <xsl:value-of select="dokument/färg"/>
           </xsl:attribute>
             <h1 xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.w3.org/"><xsl:value-of select="dokument/dokument-titel"/></h1>
             <xsl:for-each select="dokument/artickel">
                 <h2><xsl:value-of select="rubrik"/></h2>
                 <xsl:value-of select="datum"/>
                 <p><xsl:value-of select="text"/></p>
             </xsl:for-each> 
             <xsl:for-each select="dokument/artickel">
                 <h2><xsl:value-of select="rubrik"/></h2>
                 <xsl:value-of select="datum"/>
                 <p><xsl:value-of select="text"/></p>
             </xsl:for-each> 
	<xsl:for-each select="dokument/ordbok/ord">
        <p><xsl:value-of select="ordet"/><br/><xsl:value-of select="beskrivning"/></p>
        </xsl:for-each>
         </body>
    </html>
</xsl:template>
</xsl:stylesheet>
```

 

Det första jag märkte var att XSL-filen inte fungerade med följande Rotelement/Namnrymd:
 

```
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
```

 

Jag undrar varför det inte fungerade, kanske har jag gjort fel. På många ställen där jag läser används denna, men jag får den inte att fungera.

Sen försökte jag sortera min ordbok och det fungerade inte heller:

```
<xsl:for-each select="dokument/ordbok/ord" order-by="ordet">
```

 

Det tycker man ju ska fungera.

Ja vad jag egentligen är ute efter är alltså hur man ändrar utseendet med XSL-filen utan CSS.

Permalänk: https://www.webforum.nu/p/128195

## #2 — aron, 2005-06-06T18:00Z

Ja, jag har fortfarande inte kommit så långt.. är det ingen som kan ge mig en liten hint.

Permalänk: https://www.webforum.nu/p/1624803

## #3 — SannyW, 2005-06-06T18:55Z

Tjena, sitter själv och försöker lära mig xml/xslt. Så jag kollade lite och kom fram till nedanstående, om jag nu förstod dig rätt med sorteringen.

ascending = "A - Ö"
descending = "Ö - A"

```
	<xsl:for-each select="dokument/ordbok/ord">
        <xsl:sort
		select="ordet"
		data-type="text"
		order="ascending"/>
        <p><xsl:value-of select="ordet"/><br/><xsl:value-of select="beskrivning"/></p>
        </xsl:for-each>
```

Permalänk: https://www.webforum.nu/p/1624829

## #4 — aron, 2005-06-06T19:06Z

Ja, det där fungerade bättre.. tack så mycket.

Kan man på nåt sätt få tag på HTML-koden som genereras?

Permalänk: https://www.webforum.nu/p/1624831

## #5 — SannyW, 2005-06-06T19:14Z

Det var så lite så.

Du får nog förklara lite mer vad du menar och vad det är som du vill få fram i slutändan.

Permalänk: https://www.webforum.nu/p/1624834

## #6 — aron, 2005-06-06T19:45Z

Det finns kanske inte något sätt, men det vore praktiskt om man kunde få fram något likt detta på något vis. Från mit exempel.

```
<html>
<head>
<title>Detta är ett XML/XSL test.</title>
</head>
<body bgcolor="green">

....
....

</body>
</html>
```

Sen så har jag ju kvar många av frågorna jag stälde förut.

Permalänk: https://www.webforum.nu/p/1624842

## #7 — SannyW, 2005-06-06T20:47Z

Hej igen!

Svarar lite snabb med en länk som kanske kan ge dig några svar. 

<http://www.w3.org/TR/xsl/>

Vet inte om din xsl-fil funkar men 

```
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
```

Ändra till så skall filen funka:

```
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
```

Permalänk: https://www.webforum.nu/p/1624870

## #8 — aron, 2005-06-06T21:03Z

Jo... jag hittar ganska bra på W3C.. men det är mzcket att läsa.

En betydligt bättre sida är:

 <http://www.w3.org/Style/XSL/>

Permalänk: https://www.webforum.nu/p/1624876

## #9 — sl0k, 2005-06-16T23:12Z

Finns även på
<http://www.w3schools.com/xsl/>

Permalänk: https://www.webforum.nu/p/1631431

## #10 — zcorpan, 2005-06-17T05:34Z

> Kan man på nåt sätt få tag på HTML-koden som genereras?

 I Firefox: markera allt, högerklicka, View selection source. :)

Du kanske vill ange en DOCTYPE så koden som genereras är valid, samt att det renderas i Standards mode. :) 

```
<xsl:output
 method="html"
 doctype-public="-//W3C//DTD HTML 4.01//EN"
 doctype-system="http://www.w3.org/TR/html4/strict.dtd"
 encoding="iso-8859-1"/>
<xsl:template match="/">
...
```

Permalänk: https://www.webforum.nu/p/1631442

## #11 — mzn, 2005-07-02T19:12Z

Några korta kommentarer till tråden (premiärinlägg!):

> **aron skrev:**
>
> Min XSL(T)-Fil:
>
>
> ```
> ...
>     <h1 xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.w3.org/"><xsl:value-of select="dokument/dokument-titel"/></h1>
> ...
> ```

Jag föreslår att du inte blandar in XLink. Skapa vanliga HTML-länkar. 

> **aron skrev:**
>
> Det första jag märkte var att XSL-filen inte fungerade med följande Rotelement/Namnrymd:
>  
>
> ```
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
> ```

Namnrymden refererar till en föråldrad version av XSLT som Microsoft tog fram för länge sedan. Undvik.

> **SannyW skrev:**
>
> Vet inte om din xsl-fil funkar men 
> 
>
>
> ```
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
> ```
>
> 
> 
> Ändra till så skall filen funka:
> 
>
>
> ```
> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> ```

Ovanstående två kodexempel har exakt samma innebörd. I vilken ordning attributen kommer saknar betydelse i XML. 
Att sätta version till 2.0 är tveksamt. XSLT 2.0-specifikationen är inte klar ("Working Draft" hos W3C). För XSLT som skall funka i en webbläsare är det definitivt 1.0 som gäller.

> **zcorpan skrev:**
>
> Du kanske vill ange en DOCTYPE så koden som genereras är valid, samt att det renderas i Standards mode. :) 
>
>
> ```
> <xsl:output
>  method="html"
>  doctype-public="-//W3C//DTD HTML 4.01//EN"
>  doctype-system="http://www.w3.org/TR/html4/strict.dtd"
>  encoding="iso-8859-1"/>
> <xsl:template match="/">
> ...
> ```

Förtydligande: att ange en DTD via doctype-public och doctype-system är ingen garanti för att resultatet är "valid", dvs att det följer reglerna i DTD:n.

/M

Permalänk: https://www.webforum.nu/p/1639203

---

Tråden på webben: https://www.webforum.nu/amne/xml/128195-nybörjare-xsl-t
