[xsl] Finding the ancestor that declared a namespace?

Subject: [xsl] Finding the ancestor that declared a namespace?
From: "Roger L. Costello" <costello@xxxxxxxxx>
Date: Mon, 05 Aug 2002 17:12:31 -0400
Hi Folks,

I would like to see if someone has an elegant solution to this problem:

Suppose that my stylesheet template is situated at an element with a
namespace qualifier, e.g.,

   <bk:Book>

I would like to find the element which declared the bk: namespace
qualifier.  Further, I want the first ancestor element that declared
bk:  For example, with this document:

<bk:BookStore xmlns:bk="http://www.amazon.com";>
   <bk:Category xmlns:bk="http://www.book-category.com";>
       <bk:Book>

The XPath expression should give me the bk:Category element.  Here's my
attempt (which didn't work):

<xsl:variable name="ns-elmt" 
              select="ancestor::*[name(@.)='xmlns:bk'][1]"/>

This yielded no value for ns-elmt.  Any ideas?  /Roger


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread