RE: [xsl] namesapce-uri() method returns emty, when using xalan 2.0

Subject: RE: [xsl] namesapce-uri() method returns emty, when using xalan 2.0
From: "Oleg Tkachenko" <olegt@xxxxxxxxxxxxx>
Date: Mon, 12 Nov 2001 00:05:36 +0200
Hello challa !

>  say for example my xml document is as follows:
> 
> <?xml version="1.0"?>
> <a:root xmlns:a="name-a">
> 	<b:sub xmlns:b="name-b"/>
> 	<c:sub xmlns:c="name-c"/>
> </a:root>
> 
> here is my XSl ::
> 
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> version="1.0"
>   xmlns:a="name-a"  xmlns:b="name-b"  xmlns:c="name-c">
> 
> <xsl:template match="/">
>   <xsl:for-each select="root">
>    <uri><xsl:value-of select="namespace-uri()"/></uri>
>  </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
> 
> when i transform using Trax api i am getting namespace-uri() 
> method returns emty.i have no clue.

This is because you don't have element named "root" with null namespace in the context.
There is a big difference between "root" and "a:root" - the first one means "element with local name "root" and null namespace" while the second one means "element with local name "root" and namespace URI which is associated with prefix "a" at the moment".
I think you have use <xsl:for-each select="a:root"> instead.

---
Oleg Tkachenko,
Multiconn International, Israel 


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


Current Thread