DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23412>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23412 cant get namespaces from attribute node Summary: cant get namespaces from attribute node Product: XalanJ2 Version: 2.5 Platform: PC OS/Version: Windows XP Status: NEW Severity: Normal Priority: Other Component: org.apache.xpath AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] this worked in previous versions (2.4 and earlier): where the attribute value in the following has a namespace prefix: e.g. type="tns:AType" so $ns should have the full namespace with namespace declareation much further up the tree <xsl:for-each select="/some path/@some attribute" > <xsl:variable name="pre" select="substring-before(current(),':')" /> <xsl:variable name="ns" select="namespace::*[name() = $pre]" /> <!-- use $ns ie the full namespace for stuff... --> </xsl:for-each> you now need to use ../namespace::*[name() = $pre] and have the element as the "current" node to get at the list of namespaces same in <xsl:for-each select="namespace::*"> ... if the cutrrent() node is an attribute. e.g. xml: <sch:test xmlns:sch="mytestnamespace"> <sch:item name="sch:test" /> </sch:test> xslt: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="mytestnamespace"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:for-each select="/sch:test/sch:item/@name" > <xsl:variable name="pre" select="substring-before (current(),':')" /> <xsl:value-of select="concat(substring-before(current(),':'),' - > ', namespace::*[name() = $pre])" /> </xsl:for-each> </xsl:template> </xsl:stylesheet>
