Re: [xsl] How to merge translated XML files with the same IDs

Subject: Re: [xsl] How to merge translated XML files with the same IDs
From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx>
Date: Thu, 30 Apr 2009 17:44:38 +0200
Wow, a use case for tunnel parameters. Even if it does not help the performance (which would not be a problem), it is a cool ,concept and a good reason to learn about it.

Thanks for the hint,

- Michael

Am 30.04.2009 um 16:58 schrieb David Carlisle:

Or is there a more elegant way? I will be using XSLT 2.0.

That's about it really. As an alternative to going back up each time ancestor::doc you could pass it down as you go along

<xsl:template match="@idref | @id">
   <xsl:param name="lang" tunnel="yes"/>
  <xsl:attribute name="{name()}"
  select="concat($lang, '_', .)"/>
</xsl:template>

and use
xsl:with-param to set this in the template for doc.

However I have no idea on the relative costs of doing ancestor:: or
passing down a tunnel param. Presumably depends on whether you use
an idiom that causes Michael's optimiser to do something clever or
whether the code actually implements the document traversal..

David

Current Thread