Subject: Re: without a loop file get the element list
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 13 Aug 2008 11:16:19 +0100
|
> I have following xml and XSL file as bellow.
> An application calls the XSL file and disply the
> nodes
> contents in a windows as a html.
> With a for-each loop i get each node content
> (element)
> more times. For example in this sample xml file each
> element is displayed three times because there are 3
> elements in the xml file and so on.
> I t seems that each time ""for each" elment in the
> for-each loop, the whole elements are displayed!
> Calling the xml file from web browser the XSL
> Stylesheet works fine and the elemnts are
> displayed only one time as expected.
> I thought to walk throw the 'elements list' without
> the for-each loop and display the elements but I
> don't know how to do it!!??
>
> Thank you for your help
>
> *******************************
> <?xml version="1.0" encoding="iso-8859-1"?>
> <?xml-stylesheet type="text/xsl" href="text-1.xsl" ?>
> <document>
> <elements>
> <element type="author">Author-Element</element>
> <element
> type="paragraph">Paragraph-Element</element>
> <element type="title">Title-Element</element>
> </elements>
> </document>
>
> *****************************************************************
> <?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="/">
>
> <html>
> <body>
> <table >
>
> <xsl:for-each select="document/elements/element">
>
> <tr><td>
> <!-- <xsl:value-of disable-output-escaping="yes"
> select="current()"/> -->
> <xsl:value-of select="."/>
> </td></tr>
>
> </xsl:for-each>
>
> </table>
>
>
> </body>
> </html>
> </xsl:template>
> </xsl:stylesheet>
It's hard to tell what you're after, but it looks like you're trying
to output a table based on that input where <elements> is a row and
<element> is a cell, so you just want:
<xsl:template match="/">
<html>
<body>
<table>
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="elements">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="element">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
|