This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: namesapce-uri() method returns emty, when using xalan 2.0
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] namesapce-uri() method returns emty, when using xalan 2.0
- From: "Oleg Tkachenko" <olegt at multiconn dot com>
- Date: Mon, 12 Nov 2001 00:05:36 +0200
- Reply-to: xsl-list at lists dot mulberrytech dot com
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