---
title: "Syntaxfel på sajten när min XSLT template är tom"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/181667-syntaxfel-på-sajten-när-min-xslt-template-är-tom"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "MickeA.com"
published: "2009-12-16T11:27:38.000Z"
updated: "2009-12-16T22:16:36.000Z"
replies: 6
views: 1303
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/181667-syntaxfel-på-sajten-när-min-xslt-template-är-tom"
---

# Syntaxfel på sajten när min XSLT template är tom

## #1 — MickeA.com, 2009-12-16T11:27Z

Hej,

Det här är en del av min XSLT fil:

```
<xsl:template match="/">
	<table cellpadding="3" cellspacing="0" class="oddsfeed" style="width: 220px; margin: 0 auto;">
	<xsl:apply-templates select="content"/>
	</table>
</xsl:template>
```

Problemet är att när XML filen inte svarar, alltså när "content" är tom, så blir det ett fel på sajten som gör att element hoppar runt och flyttar sig.

Jag gissar på att det blir syntaxfel eftersom endast *\<table\>\</table\>* skrivs ut på sidan, stämmer det?

Går det isf. att hämta en alternativ template om *content* är tom?

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

## #2 — MickeA.com, 2009-12-16T11:31Z

Ser nu att det enda som skrivs ut då flödet är tomt är:

```
<?xml version="1.0" encoding="utf-8"?>
<table cellpadding="3" cellspacing="0" class="oddsfeed" style="width: 220px; margin: 0 auto;" />
```

Inte så konstigt alltså, *\</table\>* skrivs aldrig ut, men varför?

Tack,

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

## #3 — MickeA.com, 2009-12-16T11:35Z

Ledsen för spammandet.. men nu testade jag det här:

```
<table cellpadding="3" cellspacing="0" class="oddsfeed" style="width: 220px; margin: 0 auto;">
<xsl:template match="/">
	<xsl:apply-templates select="content"/>
</xsl:template>    
</table>
```

Så blir det rätt, dvs. inget alls skrivs ut om flödet är tomt, vilket är bra. Själva boxen där innehållet ska visas är såklart tom, men det blir inte några förskjutning på sajten i övrigt längre vilket är bra.

Skulle dock vilja veta (om någon kan) vad som gäller här, borde inte det  utanför *\<xsl:apply-templates /\>* ändå skrivas ut, även fast min template är tom?

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

## #4 — MickeA.com, 2009-12-16T12:15Z

Hmm, nej, det verkar som om jag gör som ovan, så visas det ingenting, oavsett om det finns ett okej flöde eller ej.

Vad gör jag fel? Förstår inte riktigt det här.
Kan tillägga att jag använder modulen XML/XSL i dotnetnuke och får felet:

```
System.Xml.Xsl.XslLoadException
Top-level element 'table' may not have a null namespace URI
```

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

## #5 — jarvklo, 2009-12-16T13:25Z

Hmm... 
Du kan inte ha element runt en mall som i ditt sista exempel - du var mer rätt ute i det första du skrev!

> **MickeA.com skrev:**
>
> Går det isf. att hämta en alternativ template om content är tom?

Hmm...

Klart det gör...
(Knackar från minnet)

```
<xsl:template match="/">
<xsl:choose>
  <xsl:when test="count(content)=0">
    <div>Look ma - no content!</div>
  </xsl:when>
  <xsl:otherwise>
	<table cellpadding="3" cellspacing="0" class="oddsfeed" style="width: 220px; margin: 0 auto;">
	<xsl:apply-templates select="content"/>
	</table>
  </xsl:otherwise>
</xsl:choose>
</xsl:template>
```

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

## #6 — MickeA.com, 2009-12-16T14:57Z

Tack som fan! Så jäkla vackert!

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

## #7 — jarvklo, 2009-12-16T22:16Z

**:bire**

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

---

Tråden på webben: https://www.webforum.nu/amne/xml/181667-syntaxfel-på-sajten-när-min-xslt-template-är-tom
