|
Subject: Re: [xsl] html + xml -> xsl -> html - Problem From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Sat, 19 Nov 2005 18:17:20 -0500 |
i've got a problem with 2 files resulting in 1 trough xsl.
I want to parse a html-template that should be filled with data from a xml-file.
The thing is that i don't want to put the html-stuff inside the xsl-file because the template could be changed.
The result should be:
<!-- news template --> <table> <tr><td>Titel A</td><td>123</td></tr> <tr><td>Titel B</td><td>456</td></tr> <tr><td>Titel C</td><td>789</td></tr> </table> <!-- /news template -->
Could someone give me an example how to get this?
T:\ftemp>type data.xml
<data>
<row class="col0">
<title>Title A</title>
<num>123</num>
</row>
<row class="col1">
<title>Title B</title>
<num>456</num>
</row>
<row class="col2">
<title>Title C</title>
<num>789</num>
</row>
</data>T:\ftemp>type jolie.xml <table> <tr loop="row"><td myid="title">dummytitel</td><td myid="num">1234</td></tr> </table>
T:\ftemp>type jolie.xsl <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--the external data to be added to the HTML source when building output-->
<xsl:variable name="datafile" select="document('data.xml')"/><!--found a table row that loops on the data file-->
<xsl:template match="tr[@loop]">
<!--remember the cells of the row for later-->
<xsl:variable name="cells" select="td"/>
<xsl:for-each select="$datafile/data/*[local-name(.)=current()/@loop]">
<!--building a row based on the specified row-oriented element-->
<tr>
<!--need to remember the row context when doing the cells-->
<xsl:variable name="row" select="."/>
<xsl:for-each select="$cells">
<td>
<!--match the cell's element name as asked for in attribute-->
<xsl:value-of select="$row/*[local-name(.)=current()/@myid]"/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</xsl:template><xsl:template match="@*|node()"><!--identity for all other nodes-->
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template></xsl:stylesheet> T:\ftemp>xslt jolie.xml jolie.xsl con <?xml version="1.0" encoding="utf-8"?> <table>
<tr>
<td>Title A</td>
<td>123</td>
</tr>
<tr>
<td>Title B</td>
<td>456</td>
</tr>
<tr>
<td>Title C</td>
<td>789</td>
</tr></table> T:\ftemp>
-- Upcoming XSLT/XSL-FO hands-on courses: Denver,CO March 13-17,2006 World-wide on-site corporate, govt. & user group XML/XSL training. G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] html + xml -> xsl -> html - P, my . office | Thread | Re: [xsl] html + xml -> xsl -> html, my . office |
| [xsl] html + xml -> xsl -> html - P, my . office | Date | [xsl] Full Bible (Old Testament) co, Dimitre Novatchev |
| Month |