[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Siblings to child - Hierarchy
Subject: RE: [xsl] Siblings to child - Hierarchy From: "Todd Kleine" <tkleine@xxxxxxxxxxxxx> Date: Fri, 22 Aug 2003 15:21:40 -0400 |
Thanks for everyone's help! Works like a charm. -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Wendell Piez Sent: Friday, August 22, 2003 1:53 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Siblings to child - Hierarchy Todd, I'd approach this by defining a key that would let me retrieve row elements by their assigned parent: <xsl:key name="row-by-parent" match="row" use="site-parent"/> (Look up keys in a good reference to learn the details of how they work.) Then I'd design a template matching rows: <xsl:template match="row"> <site> <!-- first, do whatever I'm going to do --> <xsl:copy-of select="site_name | site_ID"/> ... <!-- then, process its "children" using my key --> <xsl:apply-templates mode="in-group" select="key('row-by-parent', site_id)"/> </site> </xsl:template> Doing this I'd get a recursive operation that would go all the way down the tree. In order to prevent repeat occurrences, initiate this process only for rows with site-parent of 0: <xsl:template name="rowset"> <xsl:apply-templates select="row[site_parent = 0] </xsl:template> I hope that's enough to get you going -- cool problem. Cheers, Wendell At 11:06 AM 8/22/2003, you wrote: >I am new to xsl and am having a tough time with a template to transform the >results of an oracle "connect by" query into a hierarchical xml document. > >The xml results of a sample query is below: > ><page> > <rowset> > <row> > <site_id>1</site_id> > <site_name>Test Parent1</site_name> > <site_parent>0</site_parent> > <level>1</level> > <path>/0</path> > </row> > <row> > <site_id>2</site_id> > <site_name>Test Child1 of Test Parent1</site_name> > <site_parent>1</site_parent> > <level>2</level> > <path>/0/1</path> > </row> > <row> > <site_id>4</site_id> > <site_name>Test Child1 of Test Child1</site_name> > <site_parent>2</site_parent> > <level>3</level> > <path>/0/1/2</path> > </row> > <row> > <site_id>3</site_id> > <site_name>Test Parent2</site_name> > <site_parent>0</site_parent> > <level>1</level> > <path>/0</path> > </row> > </rowset> ></page> > >where the site_parent value is the site_id of it's parent and a site_parent >of 0 is a top-level node. > >I would like to produce a hierarchical xml doc based upon these results of >the form > ><site> > <site_id>1</site_id> > <site_name>Test Parent1</site_name> > <site> > <site_id>2</site_id> > <site_name> Test Child1 of Test Parent1</site_name> > <site> > <site_id>4</site_id> > <site_name>Test Child2 of Test Child1</site_name> > </site> > </site> ></site> ><site> > <site_id>3</site> > <site_name>Test Parent2</site_name> ></site> ====================================================================== 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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Siblings to child - Hiera, Wendell Piez | Thread | RE: [xsl] flat file transformation:, cknell |
[xsl] Select drop down, better gene, Mattison | Date | Re: AW: [xsl] exclude result prefix, Mark R. Diggory |
Month |