[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Find the root element from an attribute node

Subject: Re: Find the root element from an attribute node
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Thu, 10 Jul 2008 14:16:18 +0100
Re:  Find the root element from an attribute node
2008/7/10 Marroc <marrocdanderfluff@xxxxxxxxxxx>:
> 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?


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]"

Perhaps you're doing xsl:copy within the attribute matching template?
That copies the entire attribute, name and value, the result, so its
different to the standard way of modifying an element - you have to
explicitly create a new attribute if you want to modify its value.

-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.