If you know that each <INDEX> will have the same children in the same order
then this is reasonably easy (even if you don't know what the children will
be):
<xsl:template match="SOURCES">
<xsl:variable name="rows" select="SOURCE/INDEX"/>
<table>
<xsl:for-each select="SOURCE/INDEX[1]/*>
<tr>
<xsl:variable name="col" select="name()"/>
<td><xsl:value-of select="$col"/></td>
<xsl:for-each select="$rows">
<td><xsl:value-of select="*[name()=$col]"/></td>
Michael Kay
-----Original Message-----
From: Xyan [mailto:xyan(_at_)tele2(_dot_)fr]
Sent: 29 May 2004 22:00
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] select name of element / deal with embedded for-each
Hi,
as a beginner, I try to transform an XML structure like this one :
<SOURCES>
<SOURCE CODE="SOURCE_1">
<INDEX>
<INDEX_A>A1</INDEX_A>
<INDEX_B>B1</INDEX_B>
<INDEX_C>C1</INDEX_C>
</INDEX>
</SOURCE>
<SOURCE CODE="SOURCE_2">
<INDEX>
<INDEX_A>A2</INDEX_A>
<INDEX_B>B2</INDEX_B>
<INDEX_C>C2</INDEX_C>
</INDEX>
</SOURCE>
into an HTML table :
<html>
<body>
<table>
<tr>
<td>INDEX_A</td>
<td>A1</td>
<td>A2</td>
</tr>
<tr>
<td>INDEX_B</td>
<td>B1</td>
<td>B2</td>
</tr>
<tr>
<td>INDEX_C</td>
<td>C1</td>
<td>C2</td>
</tr>
</table>
</body>
</html>
I have two difficulties :
1. How to select the name of an element (in my case : <INDEX_A> must
become : <td>INDEX_A</td> ).
2. How to write the xslt in order to treat /at once/ EACH
INDEX FOR EACH
SOURCE. I have some difficulties because of the two xsl:for-each that
must coexist.
I have tried :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each select="/SOURCES/SOURCE[1]/INDEX/*">
<tr>
<xsl:for-each select="/SOURCES/SOURCE">
<td>
<xsl:value-of select="INDEX/*"/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
but the result :
A1 A2
A1 A2
A1 A2
is, as you see and have guessed, bad.........
Thanks a lot for your help.
Xyan
--+------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--