Försöker visa en XML-fil med hjälp av XSLT, men det är tvärstopp. Inga felmeddelanden utan bara tomt. 1. Din XML-fil måste ha en root-nod. Problem med XSLT
XML-filen:
<code>
<?xml version="1.0" encoding="iso-8859-1"?>
<node1 label="PORTFOLIO" value="1">
<node2 label="People" value="2" catID="1"/>
<node2 label="Gastronomy" value="2" catID="2"/>
<node2 label="Architecture" value="2" catID="3"/>
<node2 label="Still life" value="2" catID="4"/>
<node2 label="Miscellaneous" value="2" catID="5"/>
<node2 label="Private projects" value="2" catID="6"/>
</node1>
<node1 label="INFO" catID="7"/>
<node1 label="CONTACT" catID="8"/>
<node1 label="LOGIN" catID="9"/>
</code>
XSL-filen:
<code>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="node1[@value='1']">
<tr>
<td width="210" height="15">
<font>
<xsl:value-of select="node2/@label" />
</font>
</td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
</code>
ASP-filen:
<code>
'Load XML
set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.async = false
xml.load(Server.MapPath("menu.xml"))
'Load XSL
set xsl = Server.CreateObject("MSXML2.DOMDocument")
xsl.async = false
xsl.load(Server.MapPath("menuAdminGeneric2.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
</code>Sv: Problem med XSLT
Testa alltid din XML genom att t.ex visa den i Internet Explorer, för att se att den är well-formed.
Lägg till <root> element efter <?xml ... -raden, och avsluta den sist i filen.
2. Så här skulle jag gjort din xslt
<code>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/root/node1[@value='1']" name="root">
<table border="1">
<xsl:for-each select="node2">
<tr>
<td width="210" height="15">
<xsl:value-of select="@label"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
</code>