Hej! Är det några svårigheter att göra om xsl:en så att den skapar en nästad xml-fil istället? Det löste sig. Pillade lite med xsl:en du gav mig och fick formatet jag ville ha. Var det indentering (indrag) du var ute efter? Jag ändrade mig och ville ha samma struktur som i listan men i xml. Jag var lite för snabb med att fråga utan att ha testat själv ordentligt.platt XML till osorterad lista med hjälp av XSLT
Jag har xml-fil med en platt struktur som jag vill göra om till en osorterad lista.
xml:en ser ut så här
<item id="1" parentID="0">
<nodeName>Hej</nodeName>
</item>
<item id="2" parentID="0">
<nodeName>Hej hej</nodeName>
</item>
<item id="3" parentID="2">
<nodeName>Hej hej></nodeName>
</item>
<item id="4" parentID="3">
<nodeName>Hej hej</nodeName>
</item>
Det jag vill få ut är då en lista som ser ut såhär:
<ul>
<li>hej</li>
<li>Hej hej
<ul>
<li>hej hej
<ul>
<li>hej hej</li>
</ul>
</li>
</ul>
</li>
</ul>
OBS! class- och style-attributen ska ej vara med.)
Hierarkin ska kunna vara helt oändlig.
Någon som vet? Otroligt tacksam för hjälp!
//Emil
Sv: platt XML till osorterad lista med hjälp av XSLT
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="/">
<xsl:call-template name="list">
<xsl:with-param name="pid" select="0" />
</xsl:call-template>
</xsl:template>
<xsl:template name="list">
<xsl:param name="pid" />
<xsl:variable name="subs" select="/items/item[@parentID=$pid]" />
<xsl:if test="count($subs)>0">
<ul>
<xsl:for-each select="$subs">
<li>
<xsl:value-of select="." />
<xsl:call-template name="list">
<xsl:with-param name="pid" select="@id" />
</xsl:call-template>
</li>
</xsl:for-each>
</ul>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Sv:platt XML till osorterad lista med hjälp av XSLT
//EmilSv:platt XML till osorterad lista med hjälp av XSLT
Stort tack igen!Sv: platt XML till osorterad lista med hjälp av XSLT
Sv:platt XML till osorterad lista med hjälp av XSLT