problem generating html table via xslt

T

T. Sander

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
 
M

Martin Honnen

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>
 
W

William Park

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
473,997
Messages
2,570,240
Members
46,830
Latest member
HeleneMull

Latest Threads

Top