|
Subject: Re: AW: [xsl] Merging common XML tree From: Michael Kay <mike@xxxxxxxxxxxx> Date: Thu, 08 Jul 2010 11:02:33 +0100 |
<xsl:template name="g">
<xsl:param name="in" as="element(dir)*"/>
<xsl:for-each-group select="$in" group-by="name()">
<dir name="{@name}>
<xsl:call-template name="g">
<xsl:with-param name="in" select="current-group()/dir"/>
</
</
</
</Michael Kay Saxonica
Hi,
You could try this:
<xsl:template match="dir"> <copy> <copy-of select="@*"> </copy> <xsl:if test="following::dir[@name = current()/@name]"> <xsl:apply-templates select="following::dir[@name = current()/@name]/*"/> </xsl:if> </xsl:template>
Haven't tested this but the solution should be something like this.
cheers
Patrick Szabo XSLT-Entwickler
Tel.: +43 (1) 534 52 - 1573 Fax: +43 (1) 534 52 - 146
Patrick.Szabo@xxxxxxxxxxxxx
LexisNexis Verlag ARD Orac GmbH& Co KG Marxergasse 25, 1030 Wien FN 8333f, Handelsgericht Wien http://www.lexisnexis.at/
-----UrsprC<ngliche Nachricht-----
Von: Mathieu Malaterre [mailto:mathieu.malaterre@xxxxxxxxx] Gesendet: Donnerstag, 08. Juli 2010 11:30 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: [xsl] Merging common XML tree
Hi there,
I am trying to find a solution for the following problem. Let's assume that my input XML tree looks like:
<dirs> <dir name="A"> <dir name="B"> <file name="C"> </dir> </dir> <dir name="A"> <dir name="B"> <file name="D"> </dir> </dir> </dirs>
and my target output tree should looks like:
<dirs> <dir name="A"> <dir name="B"> <file name="C"> <file name="D"> </dir> </dir> </dirs>
Basically I am trying to represent a dir/file structure in XML, where I am not allowed to repeat common subdirectory. What XSL function could I use to do that (XSTL 1.0 if possible).
Thanks !
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| AW: [xsl] Merging common XML tree, Szabo, Patrick \(LNG | Thread | Re: [xsl] Merging common XML tree, Florent Georges |
| Re: [xsl] Merging common XML tree, Florent Georges | Date | Re: [xsl] Merging common XML tree, Mathieu Malaterre |
| Month |