Subject: Re: [xsl] nested XML using xslt From: kurps s <kurpss@xxxxxxxxx> Date: Fri, 24 Jul 2009 11:35:26 -0500 |
Hi Thank you for all your response. I apologize for not providing the input, I am new to the group and just getting to know it. Here is the input file: <list1> <litem>000</litem> <list2> <litem>123 </litem> <list3> <litem>ABC</litem> <litem>666</litem> </list3> <!-- now this litem element belongs to list 2--> <litem> 999 I belong to list 2</litem> <litem> I belong to list 2</litem> <list3> <litem> I belong to the new list 3</litem> </list3> <litem> I belong to list 2 again</litem> <list3> <litem> another list 3</litem> <list4> <litem>222</litem> </list4> <!-- I belong to lsit 3 now--> <litem>333</litem> </list3> </list2> </list1> Here is my desired output: <level1> <text>000</text> <level2> <text> <para>123</para> </text> <level3> <text> <para>ABC</para> </text> </level3> <level3> <text> <para>666</para> </text> </level3> </level2> <level2> <text> <para>999 I belong to list 2</para> </text> </level2> <level2> <text> <para>I belong to list 2.</para> </text> <level3> <text> <para>I belong to the new list 3list 3.</para> </text> </level3> </level2> <level2> <text> <para>I belong to list 2 again</para> </text> <level3> <text> <para>another list 3</para> </text> <level4 id="S022496B8"> <text> <para>222</para> </text> </level4> </level3> </level2> </level1> The idea is that every 'litem' element counts as a 'levelX'. Here is what I wrote: <xsl:template match="litem"> <level1> <text> <para> <xsl:value-of select="."/> </para> </text> <xsl:apply-templates select="list2/litem"/> </level1> </xsl:template> <xsl:template match="list2/litem"> <level2> <text> <para> <xsl:value-of select="."/> </para> </text> </level2> <xsl:apply-templates select="list3/litem"/> </xsl:template> <xsl:template match="list3/litem"> <level3> <text> <para> <xsl:value-of select="."/> </para> </text> </level3> <xsl:apply-templates select="list4/litem"/> </xsl:template> <xsl:template match="list4/litem"> <level4> <text> <para> <xsl:value-of select="."/> </para> </text> </level4> </xsl:template> This is running into a continuous list level intead of opening and closing list levels approriately. What am I doing wrong here? On Fri, Jul 24, 2009 at 9:43 AM, Wendell Piez<wapiez@xxxxxxxxxxxxxxxx> wrote: > Hi, > > Also, as an earlier respondent noticed, it's impossible to answer this > question without specifying the source data on which the stylesheet must > operate. > > The confusing thing is that the OP spoke of having to generate nested > structures, but the templates in his code matched structures with the same > names as his presumed output. > > So which is it: generating nested structures from some (unstated) input, or > processing nested structures -- or mapping one nested structure to another? > Any of these may be trivially easy in XSLT, but they aren't the same. > > Following the list guidelines and providing illustrations of both source and > intended result would be a big help here. > > Cheers, > Wendell > > At 07:05 PM 7/23/2009, Mike wrote: >> >> > The trick is to make sure that the first list3 gets closed >> > after <list4> , and a new <list3> opens after the first closes. >> >> It's too late at night for me to understand your problem, but this >> sentence >> sounds as if you're approaching it from the wrong angle. >> >> Don't think in terms of opening and closing elements. Think in terms of >> constructing a tree of nodes. Writing an element is an atomic operation, >> it >> isn't two separate operations to write the start and end tags. Draw the >> result tree you want to produce on a scrap of paper - as a tree - and keep >> it in front of you while coding; don't think about the serialized XML >> output. > > > ====================================================================== > 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 > ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] nested XML using xslt, Wendell Piez | Thread | Re: [xsl] nested XML using xslt, David Carlisle |
Re: [xsl] question on random number, Michael Dykman | Date | Re: [xsl] nested XML using xslt, David Carlisle |
Month |