Subject: [xsl] another hierarchical problem From: Thomas Kielczewski <thomaskiel@xxxxxxxxx> Date: Thu, 28 Jun 2007 04:38:46 -0700 (PDT) |
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] Re: Thank you all![xsl] 0x19 , Vaduvoiu Tiberiu | Thread | RE: [xsl] another hierarchical prob, Michael Kay |
[xsl] Re: Thank you all![xsl] 0x19 , Vaduvoiu Tiberiu | Date | RE: [xsl] another hierarchical prob, Michael Kay |
Month |