[xsl] Find the root element from an attribute node

Subject: [xsl] Find the root element from an attribute node
From: "Marroc" <marrocdanderfluff@xxxxxxxxxxx>
Date: Thu, 10 Jul 2008 14:07:23 +0100
Hi all,  [xslt 2.0, Saxon 9]

I'm processing dita and xhtml documents with the same template. All I'm
doing is rewriting the links, that is @hef and @src attributes. However,
I've discovered laterly, for reasons I don't want to go into, that sometimes
the @href in the xhtml need to be handled differently. I want to detect
whether the ancestor of the particular href is <html> as opposed to <map>,
<task>, <concept> or <reference> so that I can treat it differently. How do
I do it?

<xsl:template match="@href[ancestor::html]">

Is never going to work. I've read with bewilderment the threads about the
xslt spec and that attributes are children of elements but elements are not
parents of children... So, that being the case, how exactly do I find out
where my current @href came from?

Thanks in advance,
Richard

Current Thread