Subject: Re: alternative to repeatedly walking the ancestor axis in 1.0
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Fri, 1 Aug 2008 10:10:04 -0700
|
> which leaves walking the ancestor axis most of the time
Keys are for this:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kRtlMode" match="*[ancestor-or-self::*[@dir='rtl']]"
use="generate-id()"/>
<xsl:template match="node()|@*" name="identity">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[key('kRtlMode',generate-id())]">
<xsl:copy>
<xsl:attribute name="rtlDetected">true</xsl:attribute>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Applied upon this xml document:
<foo>
<bar dir="rtl">
<baz>...</baz>
</bar>
</foo>
Produces the wanted result:
<foo>
<bar rtlDetected="true" dir="rtl">
<baz rtlDetected="true">...</baz>
</bar>
</foo>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
On 8/1/08, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
> I wonder if there are any cunning solutions to this problem:
>
> - An attribute which indicates right-to-left text can occur on any
> element in the input
> - All elements in the output beneath that element should then have a
> certain style
>
> For example:
>
> <foo>
> <bar dir="rtl">
> <baz>...
>
> The output for both bar and baz should contain the style.
>
> Using 2.0 I guess the solution would be tunnelled paramters, but in
> 1.0 you'd have to manually pass the parameters - which isn't
> practical... which leaves walking the ancestor axis most of the time
> checking for the dir attribute.
>
> Are there any other ways? Or is walking the ancestor axis no big
> deal, especially when the input tree is likely to be a DOM?
>
>
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/
| Current Thread |
|
Vladimir Nesterovsky - 1 Aug 2008 16:15:18 -0000
Dimitre Novatchev - 1 Aug 2008 17:10:24 -0000 <=
|
|