[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Dot Porter wrote:
Here is an XSLT 2.0 solution:
<xsl:output method="xml" indent="yes"/>
</xsl:stylesheet>
--
Re: [xsl] Combining segments by matching attributes
Subject: Re: [xsl] Combining segments by matching attributes From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Tue, 14 Jul 2009 13:01:53 +0200 |
Dot Porter wrote:
<group> <text xml:id="A15"> <seg n="220.2">...</seg> <seg n="220.3">...</seg> (etc.) </text> <text xml:id="B15"> <seg n="220.2">...</seg> <seg n="220.3">...</seg> (etc.) </text> </group>
The texts may or may not have all the same segments (so text A may have seg[@n='223.1'] and text B may not, or vice versa). In addition the numbers are not unique to each segment (there may be several segs in a row with the same number).
Given this, I would like to generate a file that pulls together the like segments from each text, resulting in something that looks like this:
<app> <rdg wit="#A15"><seg n="220.2">...</seg></rdg> <rdg wit="#B15><seg n="220.2">...</seg></rdg> (etc.) </app> <app> <rdg wit="#A15"><seg n="220.3">...</seg></rdg> <rdg wit="#B15><seg n="220.3">...</seg></rdg> (etc.) </app> <app> <!-- for example, A15 lacks seg[@n='223.1'] --> <rdg wit="#B15"><seg n="223.1">...</seg></rdg> (etc.) </app>
Here is an XSLT 2.0 solution:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/"> <xsl:for-each-group select="group/text/seg" group-by="@n"> <app> <xsl:apply-templates select="current-group()"/> </app> </xsl:for-each-group> </xsl:template>
<xsl:template match="seg"> <reg wit="#{../@xml:id}"> <xsl:copy-of select="."/> </reg> </xsl:template>
</xsl:stylesheet>
--
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Combining segments by matchin, Dot Porter | Thread | Re: [xsl] Combining segments by mat, Dot Porter |
[xsl] Combining segments by matchin, Dot Porter | Date | Re: [xsl] Combining segments by mat, Dot Porter |
Month |
Keywords