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=12691>. 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=12691 Problem with key-function. ------- Additional Comments From [EMAIL PROTECTED] 2002-10-09 12:55 ------- Sorry about that! Here I attach a stylesheet with use of xalan:nodeset. <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:x="http://www.xtractor.com" xmlns:par="http://www.xtractor.com/party" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="xalan"> <xsl:output method="xml" encoding="ISO-8859-1" omit-xml- declaration="yes"/> <!-- Binder key --> <xsl:key name="binder.key" match="par:party" use="@x:binder.key"/> <xsl:template match="/"> <!-- Start XPath query processing --> <xsl:call-template name="x:binder"> <xsl:with-param name="x:set"> <par:party x:binder.key="1" xmlns:par="http://www.xtractor.com/party"> <par:party.id>1</par:party.id> <par:person> <par:name> <par:first.name>First 1</par:first.name> <par:middle.name>Middle 1</par:middle.name> <par:last.name>Last 1</par:last.name> </par:name> </par:person> <par:postal.address> <par:postal.code>555</par:postal.code> <par:city>City 1</par:city> <par:address.line>Street 1</par:address.line> </par:postal.address> </par:party> <par:party x:binder.key="2" xmlns:par="http://www.xtractor.com/party"> <par:party.id>2</par:party.id> <par:person> <par:name> <par:first.name>First 2</par:first.name> <par:middle.name>Midle 2</par:middle.name> <par:last.name>Last 2</par:last.name> </par:name> </par:person> <par:postal.address> <par:postal.code>666</par:postal.code> <par:city>City 2</par:city> <par:address.line>Street 2</par:address.line> </par:postal.address> </par:party> <par:party x:binder.key="1" xmlns:par="http://www.xtractor.com/party"> <par:party.id>1</par:party.id> <par:person> <par:name> <par:first.name>First 1</par:first.name> <par:middle.name>Middle 1</par:middle.name> <par:last.name>Last 1</par:last.name> </par:name> </par:person> <par:postal.address> <par:country.code>NO</par:country.code> <par:postal.code>777</par:postal.code> <par:address.line>Street 1</par:address.line> </par:postal.address> </par:party> </xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template name="x:binder"> <xsl:param name="x:set"/> <xsl:variable name="bound"> <xsl:for-each select="xalan:distinct(xalan:nodeset ($x:set)/*/@x:binder.key)"> <xsl:variable name="binder.key" select="."/> <x:bound> <xsl:for-each select="xalan:nodeset ($x:set)"> <xsl:copy-of select="key ('binder.key',$binder.key)"/> </xsl:for-each> </x:bound> </xsl:for-each> </xsl:variable> <xsl:copy-of select="$bound"/> </xsl:template> </xsl:stylesheet>
