![]() |
problem generating html table via xslt
Hi !
I have the following XML-fragment : <DL> <DT>term 1 </DT> <DD>def 1</DD> <DT>term 2 </DT> <DD>def 2</DD> <DT>term 3 </DT> <DD>def 3</DD> </DL> and want to generate a table similar to : <html> <body> <table border="12"> <TR> <TD>term 1</TD> <TD>def 1</TD> </TR> <TR> <TD>term 2</TD> <TD>def 2</TD> </TR> <TR> <TD>term 3</TD> <TD>def 3</TD> </TR> </table> </body> </html> So I am looking for a xsl template to generate this HTML table without using any <xsl:text disable-output-escaping="yes"></TD><TD></xsl:text> or similar. Thanks for any comments Thilo |
Re: problem generating html table via xslt
T. Sander wrote: > I have the following XML-fragment : > > <DL> > <DT>term 1 </DT> > <DD>def 1</DD> > <DT>term 2 </DT> > <DD>def 2</DD> > <DT>term 3 </DT> > <DD>def 3</DD> > </DL> > > and want to generate a table similar to : > > <html> > <body> > <table border="12"> > <TR> > <TD>term 1</TD> > <TD>def 1</TD> > </TR> > <TR> > <TD>term 2</TD> > <TD>def 2</TD> > </TR> > <TR> > <TD>term 3</TD> > <TD>def 3</TD> > </TR> > </table> > </body> > </html> > > So I am looking for a xsl template to generate this HTML table <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" indent="yes" encoding="UTF-8" /> <xsl:template match="/"> <html> <head> <title>Some definitions</title> </head> <body> <xsl:apply-templates select="DL" /> </body> </html> </xsl:template> <xsl:template match="DL"> <xsl:if test="DT"> <table border="12"> <tbody> <xsl:for-each select="DT"> <tr> <td><xsl:value-of select="." /></td> <td><xsl:value-of select="following-sibling::DD[1]" /></td> </tr> </xsl:for-each> </tbody> </table> </xsl:if> </xsl:template> </xsl:stylesheet> -- Martin Honnen http://JavaScript.FAQTs.com/ |
Re: problem generating html table via xslt
T. Sander <roetz7@unicum.de> wrote:
> Hi ! > > I have the following XML-fragment : > > <DL> > <DT>term 1 </DT> > <DD>def 1</DD> > <DT>term 2 </DT> > <DD>def 2</DD> > <DT>term 3 </DT> > <DD>def 3</DD> > </DL> > > and want to generate a table similar to : > > <html> > <body> > <table border="12"> > <TR> > <TD>term 1</TD> > <TD>def 1</TD> > </TR> > <TR> > <TD>term 2</TD> > <TD>def 2</TD> > </TR> > <TR> > <TD>term 3</TD> > <TD>def 3</TD> > </TR> > </table> > </body> > </html> > > So I am looking for a xsl template to generate this HTML table without > using any > <xsl:text disable-output-escaping="yes"></TD><TD></xsl:text> > or similar. start () { # Usage: start tag att=value ... case $1 in DL) echo '<html>'; echo '<body>'; echo '<table border="12">' ;; DT) echo '<TR>' ;; esac } middle () { # Usage: middle data case ${XML_ELEMENT_STACK[1]} in # only in <DT>..</DT> or <DD>..</DD> DT|DD) echo "<TD>$1</TD>" ;; esac } end () { # Usage: end tag case $1 in DL) echo '</table>'; echo '</body>'; echo '</html>' ;; DD) echo '</TR>' ;; esac } xml -s start -d middle -e end '<DL>...</DL>' Ref: http://freshmeat.net/projects/bashdiff/ http://home.eol.ca/~parkw/index.html#xml help xml -- William Park <opengeometry@yahoo.ca> Open Geometry Consulting, Toronto, Canada |
| All times are GMT. The time now is 04:29 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.