|
Subject: [xsl] key grouping with non-existing or empty elements From: Xiaocun Xu <xiaocunxu@xxxxxxxxx> Date: Tue, 24 Dec 2002 13:02:26 -0800 (PST) |
Hi,
I have a question regarding grouping with key.
Following is the input XML example:
<row row="1">
<cell column="1">default_item1</cell>
<cell column="6"></cell>
</row>
<row row="2">
<cell column="1">default_item2</cell>
</row>
<row row="3">
<cell column="1">lot01_item1</cell>
<cell column="6">lot01</cell>
</row>
<row row="4">
<cell column="1">lot02_item2</cell>
<cell column="6">lot02</cell>
</row>
I have a number of items that need to be grouped by
lot (cell[column=6]). As you can see, this cell is
optional.
I need to group rows that does not have cell[6] and
rows have cell[6] as empty string into the same group,
then process each of the row within the group via:
<xsl:apply-templates select="key('lineitemLotsKey',
$lotName)" mode="LineItem"/>
The way I currently handling this is not very
elegent:
1. create a key on lot (cell 6) for all rows with cell
6 element:
<xsl:variable name="LineItemLotColumn" select="6"/>
<xsl:key name="lineitemLotsKey" match="//row[@row
> $LineItemHeaderRow and
(cell[@column=$LineItemLotColumn])]"
use="cell[@column=$LineItemLotColumn]"/>
2. create a separate variable that contains rows that
does not have cell 6 element:
<xsl:variable name="LineItemDefaultLot"
select="//row[@row > $LineItemHeaderRow and
not(cell[@column=$LineItemLotColumn])]"/>
3. process $LineItemDefaultLot separately.
4. when process rows in key lineitemLotsKey, check for
string(cell[6]). If empty, then does similar
processing as #3.
Of course, a slight improvement would be for #2,
instead of get all rows that does not have cell 6
element, also get all rows that has cell 6 element
equal to empty string. That way, I would not need to
check for string(cell[6]) in step #4.
Is there a more elegent way than these above?
Thanks,
Xiaocun
xiaocunxu@xxxxxxxxx
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] How to output open/close , Passin, Tom | Thread | Re: [xsl] key grouping with non-exi, Joerg Heinicke |
| RE: [xsl] How to output open/close , Ed Blachman | Date | [xsl] use variable as node-set for , Xiaocun Xu |
| Month |