|
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 |