---
title: "xml och xsl"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/48964-xml-och-xsl"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "kristoffer"
published: "2002-07-29T08:43:15.000Z"
updated: "2002-07-29T08:43:15.000Z"
replies: 0
views: 167
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/dotnet/48964-xml-och-xsl"
---

# xml och xsl

## #1 — kristoffer, 2002-07-29T08:43Z

Alltså, jag måste verkligen få rätt på det här. I Internet Explorer fungerar det, men i asp.net fungerar det inte. Jag vill alltså skapa rekursiv XML till en meny (eftersom menyn kan ha undermenyer osv). I databasen har jag menuID och parentID som är kopplat till menuID.

Jag har en xml-fil:

```
<?xml version="1.0" ?>
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql" sql:xsl="menus2.xsl">
	<sql:query>
   select * from menus for xml auto
 </sql:query>
</root>
```

och en xsl-fil:

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

<xsl:template match="/">
    <TREENODES>
    <xsl:apply-templates select="root/menus[not(@parentID)]"/>
    </TREENODES>
</xsl:template>

<xsl:template match="menus">
    <xsl:variable name="ID" select="@menuID"/>
    <treenode>
			<xsl:attribute name="Text"><xsl:value-of select="@Title"/></xsl:attribute>
			<xsl:attribute name="NavigateURL"><xsl:value-of select="@URL"/></xsl:attribute>
			<xsl:attribute name="Target" >main</xsl:attribute>
			<xsl:apply-templates select="//menus[@parentID=$ID]"/>
    </treenode>
</xsl:template>

</xsl:stylesheet>
```

Ser ni några fel i koden? Det fungerar som sagt i Internet Explorer när jag browsar till filen, men när jag debuggar den i en xsl-debugger eller försöker transformera den i asp.net får jag bara upp

```
<?xml version="1.0" encoding="UTF-16"?><TREENODES></TREENODES>
```

Jag är lite osäker på vilken sökväg till filerna jag egentligen skall använda. Jag har skapat ett virtual directory som pekar på det bibliotek som innehåller xml- och xsl-filen. Sedan skall man tydligen även skapa ett virtual name av typen Template som pekar på det virtual directoryt man just skapade. Exempel:

- Jag lägger xml- och xsl-filerna i C:\\Inetpub\\wwwroot\\myproject\\xml.
- I "IIS Virtual Directory Managment for SQL Server" skapar jag ett virtual directory som heter myprojectxml och sätter Local Path till C:\\Inetpub\\wwwroot\\myproject\\xml och ställer in data source så den hittar rätt databas osv. Jag lägger till ett Virtual Name som heter xmltest och sätter dess Local Path till C:\\Inetpub\\wwwroot\\myproject\\xml.

Därefter kan jag surfa till <http://localhost/myprojectxml/xmltest/menus2.xml> och då se den rätta xml-koden. Det betyder att den hittar databasen och transformeringen fungerar osv, men i asp.net eller i en debugger fungerar det inte.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/48964-xml-och-xsl
