[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] GROUPING AND KEYS
Subject: [xsl] GROUPING AND KEYS From: Cleyton Jordan <cleytonjordan@xxxxxxxxxxx> Date: Tue, 28 Apr 2009 03:21:09 -0700 (PDT) |
Hi, I would like to understand how keys and grouping work in XSLT and I came across a post that might help me. However, I have some questions regarding the code and would appreciate if someone could shed some light about sections of the code I do not understand. "I have Nodes that all have "Shift" data. Within these Shifts, I have a Part Number. Now, I want to be able to group and add together all the data associated with a Part Number, regardless of what Shift it was produced in. For example, I want to be able to add together all the "counts" for part number 1. " <foo> <shift> <partNo num="1"> <data count="2"/> <data time="3"/> </partNo> </shift> <shift> <partNo num="1"> <data count="1"/> <data time="5"/> </partNo> </shift> <shift> <partNo num="2"> <data count="5"/> <data time="7"/> </partNo> </shift> <foo> 1 - Is there a way to visualise in XSLT what this key looks like? <xsl:key name="partNo" match="partNo" use="@num" /> In this statement <xsl:for-each select="foo/shift/partNo[count(. | key('partNo', @num)[1]) = 1]"> we are selecting all partNo nodes where count(. | key( 'partNo', @num)[1]) = 1] 2 - What does . mean in this expression? the partNo node? 3 - What does | mean? 4 - key( 'partNo', @num) - this is the key. Are we using the current @num attribute to get all the partNo whose @num = 1 then 2 etc...? 5 - )[1]) = 1 - Why is it using an array index [1] to get the first one and then using = 1 ? I would very much appreciate some feedback and help to understand this code.. CJ CODE <xsl:key name="partNo" match="partNo" use="@num" /> <xsl:template match="/"> <xsl:for-each select="foo/shift/partNo[count(. | key('partNo', @num)[1]) = 1]"> <xsl:sort select="@num" /> Part num: <xsl:value-of select="@num" /> <xsl:for-each select="key('partNo', @num)"> [<xsl:value-of select="data/@count" />, <xsl:value-of select="data/@time" />] </xsl:for-each> <br /> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Balisage Submissions Lost in , B Tommie Usdin | Thread | RE: [xsl] GROUPING AND KEYS, Michael Kay |
Re: [xsl] enclosing attribute in si, Wendell Piez | Date | RE: [xsl] GROUPING AND KEYS, Michael Kay |
Month |
Keywords