Hi Scott,
At 02:31 PM 1/23/2004, you wrote:
your question: "Or is this actually the case, and do you really want your
result to have tables inside td (cell) elements? which is common enough in
HTML"
Answer is "yes I want to have my results to have tables inside td elements.
I have included a snippet of the html input I parse to the xml structure I
listed above. Also <TABLE> = <table>; <DPROW> = <tr>; and <OBJECT> = <td>
input html snippet:
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="842"><TR><TD
WIDTH="3"></TD><TD><TABLE WIDTH="100%" BORDER="0" CELLSPACING="0"
CELLPADDING="0"><TR HEIGHT="6"><TD WIDTH="4"></TD><TD WIDTH="22"></TD><TD
WIDTH="67"></TD><TD WIDTH="2"></TD><TD WIDTH="211"></TD><TD
WIDTH="2"></TD><TD WIDTH="273"></TD><TD WIDTH="48"></TD><TD
WIDTH="92"></TD><TD WIDTH="2"></TD><TD WIDTH="2"></TD><TD
WIDTH="82"></TD><TD WIDTH="6"></TD><TD WIDTH="22"></TD><TD
WIDTH="5"></TD></TR><TR><TD WIDTH="4"></TD><TD WIDTH="22"></TD><TD
WIDTH="67" VALIGN="TOP"><TABLE BORDER="0" WIDTH="66"><TR><TD
CLASS="s2">Agent ID:</TD></TR></TABLE></TD><TD WIDTH="2" COLSPAN="2"
VALIGN="TOP"><TABLE BORDER="0" WIDTH="212"><TR><TD
CLASS="s3">100008</TD></TR></TABLE></TD><TD WIDTH="2"></TD><TD
WIDTH="273"></TD><TD WIDTH="48"></TD><TD WIDTH="92"></TD><TD
WIDTH="2"></TD><TD WIDTH="2" COLSPAN="2" VALIGN="TOP"><TABLE BORDER="0"
WIDTH="84"><TR><TD CLASS="s4">12/19/2003</TD></TR></TABLE></TD><TD
WIDTH="6"></TD><TD WIDTH="22"></TD><TD WIDTH="5"></TD><TD
HEIGHT="20"></TD></TR><TR><TD WIDTH="4"></TD><TD WIDTH="22" COLSPAN="3"
ROWSPAN="2" VALIGN="TOP"><TABLE BORDER="0" WIDTH="90"><TR><TD
CLASS="s2">Agent Name:</TD></TR></TABLE></TD><TD WIDTH="211"></TD><TD
WIDTH="2"></TD><TD WIDTH="273"></TD><TD WIDTH="48"></TD><TD WIDTH="92"
COLSPAN="3" ROWSPAN="2" VALIGN="TOP"><TABLE BORDER="0" WIDTH="96"><TR><TD
CLASS="s4">Report Date:</TD></TR></TABLE></TD><TD WIDTH="82" COLSPAN="3"
ROWSPAN="2" VALIGN="TOP"><TABLE BORDER="0"
Sorry, I'm still having to make inferences. You describe the HTML above as
input. If this is input to a process which is creating your
TABLE/DROW/OBJECT structure, and it's the TABLE/DROW/OBJECT structure that
you need to map out again to HTML tables, then what's wrong with the simple
XSLT that Jorge suggested and that I included earlier today? (Have you
tried it?)
This will map TABLE to table, DPROW to tr and OBJECT to td. TABLE elements
that appear inside OBJECT elements in the source will come out as table
elements inside td elements in the result. No sweat: this is what XSLT does
best; in fact you have to work extra to get it to do differently.
<xsl:template match="TABLE">
<table>
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="DPROW"><!-- sorry, earlier I called it "DROW" -->
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="OBJECT">
<td>
<!-- first, whatever you want to do to show empty objects -->
...
<!-- then, continue tree traversal for the data content
and the nested tables by applying templates -->
<xsl:apply-templates/>
</td>
</xsl:template>
(Note again that it does have to be enhanced to handle your attributes; but
that's separate from the structural mapping problem.) If you have tried
this and it doesn't do what you want, then we still have a problem, since
what you say you want is what this code will do (yes, it will create tables
inside tds, wherever you have TABLEs inside OBJECTs), so we need to go back
to square one: either we haven't understood yet what you want, or the
problem is larger than what you have described -- there could be something
happening in code you haven't shown us.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list