Re: [xsl] Comparing direct ancestors

Subject: Re: [xsl] Comparing direct ancestors
From: Spencer Tickner <spencertickner@xxxxxxxxx>
Date: Thu, 24 May 2012 09:21:42 -0700
What can I say... Wow. thanks much David.

Cheers

On Thu, May 24, 2012 at 9:12 AM, David Carlisle <davidc@xxxxxxxxx> wrote:
> <xsl:stylesheet version="2.0"
> B  B  B  B  B  B  B  B xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>
>
> <xsl:key name="cb" match="*[not(self::p|self::t)]/change-begin"
> B  B  B  B  use="generate-id(following::*[self::p|self::t][1])"/>
>
> <xsl:key name="ce" match="*[not(self::p|self::t)]/change-end"
> B  B  B  B  use="generate-id(preceding::*[self::p|self::t][1])"/>
>
> <xsl:template match="*">
>
> B <xsl:copy>
> B <xsl:copy-of select="@*"/>
> B <xsl:apply-templates/>
> B </xsl:copy>
> </xsl:template>
>
> <xsl:template match="change-begin|change-end"/>
>
> <xsl:template match="
> B  B  B  B  B  B  B  B  B  B  p/change-begin|p/change-end|
> B  B  B  B  B  B  B  B  B  B  t/change-begin|t/change-end
> B  B  B  B  B  B  B  B  B  B  " priority="2">
> B <xsl:copy-of select="."/>
> </xsl:template>
>
> <xsl:template match="p|t">
>
> B <xsl:copy>
> B <xsl:copy-of select="@*"/>
> B <xsl:copy-of select="key('cb',generate-id())"/>
> B <xsl:apply-templates/>
> B <xsl:copy-of select="key('ce',generate-id())"/>
> B </xsl:copy>
> </xsl:template>
>
>
>
>
> $ saxon9 cb.xml cb.xsl
> <?xml version="1.0" encoding="UTF-8"?><root>
>
>
> B  B  B  B <a>
> B  B  B  B  B  B  B  B <p><change-begin/>Foo<change-end/></p>
> B  B  B  B </a>
>
> B  B  B  B <b>
> B  B  B  B  B  B  B  B <d>
> B  B  B  B  B  B  B  B  B  B  B  B <t><change-begin/>Bar</t>
> B  B  B  B  B  B  B  B </d>
> B  B  B  B  B  B  B  B <d>
> B  B  B  B  B  B  B  B  B  B  B  B <t>Foo<change-end/></t>
> B  B  B  B  B  B  B  B </d>
> B  B  B  B </b>
>
> B  B  B  B <p>Nothing <change-begin/>to worry<change-end/> about</p>
> </root>
>
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs.
> ________________________________________________________________________

Current Thread