Subject: RE: [xsl] Question about the key() function From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 13 May 2005 22:38:54 +0100 |
Because there is a bug in your XSLT processor. The correct output is: Saxon 8.4 from Saxonica ... <?xml version="1.0" encoding="UTF-8"?> <keyNode> <Name>1, Frisby, 48392</Name> <Name>10, Backstayge, 02718</Name> <Name>2, Attired, 00218</Name> <Name>20, Backstayge, 02718</Name> <Name>300, McGoon, 27318</Name> <Name>31, Reckonwith, 02930</Name> </keyNode> The key() function is specified to remove duplicates, it appears your implementation is not doing so. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: aspsa [mailto:aspsa@xxxxxxxxxxxxx] > Sent: 13 May 2005 22:14 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Question about the key() function > > Hi, folks. > > Given this document... > > <?xml version="1.0" encoding="UTF-8"?> > <addressbook> > <address> > <name> > <title>Mr.</title> > <first-name>Chester Hasbrouck</first-name> > <last-name>Frisby</last-name> > </name> > <street>1234 Main Street</street> > <city>Sheboygan</city> > <state>WI</state> > <zip>48392</zip> > <id>1</id> > </address> > <address> > <name> > <first-name>Mary</first-name> > <last-name>Backstayge</last-name> > </name> > <street>283 First Avenue</street> > <city>Skunk Haven</city> > <state>MA</state> > <zip>02718</zip> > <id>10</id> > </address> > <address> > <name> > <title>Ms.</title> > <first-name>Natalie</first-name> > <last-name>Attired</last-name> > </name> > <street>707 Breitling Way</street> > <city>Winter Harbor</city> > <state>ME</state> > <zip>00218</zip> > <id>2</id> > </address> > <address> > <name> > <first-name>Harry</first-name> > <last-name>Backstayge</last-name> > </name> > <street>283 First Avenue</street> > <city>Skunk Haven</city> > <state>MA</state> > <zip>02718</zip> > <id>20</id> > </address> > <address> > <name> > <first-name>Mary</first-name> > <last-name>McGoon</last-name> > </name> > <street>103 Bryant Street</street> > <city>Boylston</city> > <state>VA</state> > <zip>27318</zip> > <id>300</id> > </address> > <address> > <name> > <title>Ms.</title> > <first-name>Amanda</first-name> > <last-name>Reckonwith</last-name> > </name> > <street>930-A Chestnut Street</street> > <city>Lynn</city> > <state>MA</state> > <zip>02930</zip> > <id>31</id> > </address> > </addressbook> > > ...and this XSLT document... > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml" version="1.0" encoding="UTF-8" > indent="yes"/> > <xsl:key name="x" match="address" use="zip"/> > > <xsl:template match="/"> > <keyNode> > <xsl:apply-templates select="key('x',addressbook/address/zip)" /> > </keyNode> > </xsl:template> > > <xsl:template match="address"> > <Name> > <xsl:value-of select="id"/> > <xsl:text>, </xsl:text> > <xsl:value-of select="name/last-name"/> > <xsl:text>, </xsl:text> > <xsl:value-of select="zip"/> > </Name> > </xsl:template> > </xsl:stylesheet> > > ...why does the output repeat nodes containing id values 10 and 20? > > <?xml version="1.0" encoding="UTF-8"?> > <keyNode> > <Name>1, Frisby, 48392</Name> > <Name>10, Backstayge, 02718</Name> > <Name>10, Backstayge, 02718</Name> > <Name>2, Attired, 00218</Name> > <Name>20, Backstayge, 02718</Name> > <Name>20, Backstayge, 02718</Name> > <Name>300, McGoon, 27318</Name> > <Name>31, Reckonwith, 02930</Name> > </keyNode> > > > Respectfully, > > ASP
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Question about the key() func, aspsa | Thread | RE: [xsl] Question about the key() , aspsa |
RE: [xsl] Using <xsl:for-each> and , David Gadd | Date | [xsl] Re: xsl-list Digest 13 May 20, Shivani Goel |
Month |