|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: key definition
I tried that key definition and it didn't work all the time. Consider two test cases: 1) select all <item>'s whose data element has @id=1 and text()='alpha'. expect first and second <item>'s 2) select all <item>'s whose data element has @id=2 and text()='gamma'. expect first and third <item>'s Only the first test case works as intended. Enclosed is XML and XSLT. This is what I expect to see from XSLT: alpha, gamma alpha, delta ------------- alpha, gamma beta, gamma What is wrong? <?xml version="1.0" ?> <?xml-stylesheet type="text/xsl" href="GroupingKeyQuestion.xsl"?> <items> <item> <data id="1">alpha</data> <data id="2">gamma</data> </item> <item> <data id="1">alpha</data> <data id="2">delta</data> </item> <item> <data id="1">beta</data> <data id="2">gamma</data> </item> </items> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:key name="MyKey" match="/items/item" use="concat(data/@id,data/text())" /> <xsl:template match="/">
<xsl:for-each select="key('MyKey',concat('1','alpha'))">
<xsl:value-of select="data[@id='1']"/>,
<xsl:value-of select="data[@id='2']"/><br/>
</xsl:for-each>
<hr/>
<xsl:for-each select="key('MyKey',concat('2','gamma'))">
<xsl:value-of select="data[@id='1']"/>,
<xsl:value-of select="data[@id='2']"/><br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>_________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








