Subject: AW: [xsl] Merging common XML tree From: "Szabo, Patrick \(LNG-VIE\)" <patrick.szabo@xxxxxxxxxxxxx> Date: Thu, 8 Jul 2010 11:39:40 +0200 |
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 ! -- Mathieu
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Merging common XML tree, Mathieu Malaterre | Thread | Re: AW: [xsl] Merging common XML tr, Michael Kay |
[xsl] Merging common XML tree, Mathieu Malaterre | Date | Re: [xsl] Merging common XML tree, Florent Georges |
Month |