problem generating html table via xslt

T. Sander

Usenet Archive
Joined
Oct 23, 2003
Messages
4
Reaction score
0
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">&lt;/TD>&lt;TD></xsl:text> or similar.

Thanks for any comments

Thilo
 

Martin Honnen

Usenet Archive
Joined
Apr 8, 2000
Messages
6,174
Reaction score
0
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:eek:utput 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>
 

William Park

Usenet Archive
Joined
Jul 5, 2002
Messages
213
Reaction score
0
T. Sander said:
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">&lt;/TD>&lt;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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
548,042
Messages
3,104,223
Members
248,131
Latest member
Tonypshaw1

Latest Threads

Top