Subject: Re: [xsl] How to move sibling 1 to child, sibling 2 to grandchild... From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Mon, 15 Aug 2011 21:03:58 +0100 |
On 15 August 2011 21:00, Alex Muir <alex.g.muir@xxxxxxxxx> wrote: > Hi given the following > > <group xml:id="MILHIS_Yes"> > <name>Yes</name> > </group> > <group xml:id="MILHIS_Vehicles"> > <name>Vehicles</name> > </group> > <group xml:id="MILHIS_Air"> > <name>Air</name> > </group> > <group xml:id="MILHIS_Aeroplane"> > <name>Aeroplane</name> > </group> > <item xml:id="MILHIS_Attack_Aircraft"> > <name>Attack Aircraft</name> > </item> > > I'm trying to convert it to without any success. > > <group xml:id="MILHIS_Yes"> > <name>Yes</name><group xml:id="MILHIS_Vehicles"> > <name>Vehicles</name> > <group xml:id="MILHIS_Air"> > <name>Air</name> > <group xml:id="MILHIS_Aeroplane"> > <name>Aeroplane</name> > <item xml:id="MILHIS_Attack_Aircraft"> > <name>Attack Aircraft</name> > </item> > </group> > </group> > </group> > </group> > > How do you do this in xslt assuming you could have any number of > groups followed by 1 item? <xsl:template match="/"> <xsl:apply-templates select="/path/to/group[1]"/> </ then within the group template, apply-templates to the next sibling, or item: <xsl:template match="group"> <xsl:copy> <xsl:copy-of select="node()"/> <xsl:apply-templates select="following-sibling::*[1][self::group or self:item]"/> </ </ -- Andrew Welch http://andrewjwelch.com
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to move sibling 1 to chil, Alex Muir | Thread | Re: [xsl] How to move sibling 1 to , Alex Muir |
[xsl] How to move sibling 1 to chil, Alex Muir | Date | Re: [xsl] using OR in a group-endin, David Carlisle |
Month |