[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Creating nested structures

Subject: Re: Creating nested structures
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 23 Jan 2004 17:47:49 -0500
nested structure
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@xxxxxxxxxxxxxxxx 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



Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.