|
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 |