Re: [xsl] Find the root element from an attribute node

Subject: Re: [xsl] Find the root element from an attribute node
From: "Vyacheslav Sedov" <vyacheslav.sedov@xxxxxxxxx>
Date: Fri, 11 Jul 2008 14:27:22 +0400
what about just match="@href[/html]" ?

On Thu, Jul 10, 2008 at 7:32 PM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
>>> What you've done should be fine, but its slow to walk the ancestor
>>> axis to the root element each time, so just do:
>>>
>>> <xsl:variable name="isHTML" select="exists(/html)" as="xs:boolean"/>
>>>
>>> and then:
>>>
>>> match="@href[$isHTML]"
>>
>> This code is based on the assumption that xsl:apply-templates is called
>> for the input tree only, and not for any other loaded or constructed.
>
> Ok, I guess that could be a gotcha... in which case, just do:
>
> match="@href[exists(/html)]"
>
> It's funny how this has come up - I've just left a place where they
> had two types of XML - one with <page> for the root element, the other
> with <response>, and throughout the code, all over the place, they had
> choose/when's with [ancestor::page] and [ancestor::response]... so I
> changed it all to use global variables instead.  The gotcha didn't
> occur to me at the time.... I think they will be alright though :)
>
>
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/

Current Thread