|
Subject: RE: [xsl] another hierarchical problem From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 28 Jun 2007 13:09:57 +0100 |
Best approach to this is XSLT 2.0
<xsl:for-each-group select="*" group-starting-with="skill">
<skill name="{.}">
<xsl:copy-of select="subsequence(current-group(), 2)"/>
</skill>
</xsl:for-each>
Having said that, I haven't worked out why your current code doesn't work.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Thomas Kielczewski [mailto:thomaskiel@xxxxxxxxx]
> Sent: 28 June 2007 12:39
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] another hierarchical problem
>
> Hi all,
>
> Given the flat XML:
>
> <root>
> <skill>skill1</skill>
> <procedure>procedure</procedure>
> <note>note</note>
> <supplies>supplies</supplies>
> <cleanup>cleanup</cleanup>
> <skill>skill2</skill>
> ...
> </root>
>
> I would like to structure this. I'm using the
> generate-id/preceding-sibling method but unlike the example I
> base this on, I would like to call ALL elements types to be
> under it hierarchically (following-sibling::*). However, when
> I try the following XSLT, <skill> begins nesting ad
> infinitum, eventually maxing out the memory allocated to saxon-j.
>
>
> Can anyone see anything wrong with this?
>
> <xsl:output method="xml" indent="yes" /> <xsl:strip-space
> elements="*"/>
>
> <xsl:template match="skill">
> <xsl:element name="{name()}">
> <xsl:attribute name="id" select="text()"/>
> <xsl:apply-templates
> select="following-sibling::*[generate-id(preceding-sibling::skill[1])
> = generate-id(current())]" />
> </xsl:element>
> </xsl:template>
>
> <xsl:template match="*">
> <xsl:copy-of select="." />
> </xsl:template>
>
> <xsl:template match="root">
> <xsl:apply-templates select="skill" /> </xsl:template>
> </xsl:stylesheet>
>
> Perhaps another flat-to-hierarchical method is better suited?
>
> What if I need to create multiple levels of nesting?
> Could that be done in a single stylesheet? Once I solve my
> first problem, I could easily do it in several passes. I also
> toyed with the idea of building a structured "skeleton" of my
> parent element <skill> into a template and then populating
> it. Is that an accepted technique?
>
>
> I appreciate any pointers,
> Thomas Kiel
>
>
>
>
> ______________________________________________________________
> ______________________
> Choose the right car based on your needs. Check out Yahoo!
> Autos new Car Finder tool.
> http://autos.yahoo.com/carfinder/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] another hierarchical problem, Thomas Kielczewski | Thread | [xsl] Retrieving "markup" hidden in, AAS Contractor |
| [xsl] another hierarchical problem, Thomas Kielczewski | Date | [xsl] Retrieving "markup" hidden in, AAS Contractor |
| Month |