Hi,
How to build multi-valued non-unique keys with key
built with tokens?
My input XML looks like:
<row row="15">
<cell column="1">supplier</cell>
<cell column="2">s1</cell>
<cell column="3">item</cell>
<cell column="4">item1|item2</cell>
<cell column="5">s1_AM1</cell>
<cell column="6">accepted</cell>
</row>
<row row="16">
<cell column="1">supplier</cell>
<cell column="2">s2</cell>
<cell column="3">item</cell>
<cell column="4">item1|item3|item4</cell>
<cell column="5">s2_AM1</cell>
<cell column="6">accepted</cell>
</row>
I want to group these based on items, so that when I
process each of the items later, I can retrieve the
appropriate rows to process at that time.
For example, key("itemInvites", "item1") should
return both above rows and key("itemInvites", "item3")
should only return row 16.
I know that if I can change the input XML, replace
pipe delimited values with sub-elements:
<cell column="4">
<subcell>item1</subcell>
<subcell>item2</subcell>
</cell>
I can use the following xsk:key to build what I
need:
<xsl:key name="itemInvites"
match="//row[cell[(_at_)column=3] = 'item']"
use="cell/subcell"/>
But is there a way to build the "use" parameter to
use tokens returned by str:tokenize template such as
below?
<xsl:variable name="InvitedSuppliers">
<xsl:call-template name="str:tokenize">
<xsl:with-param name="string" select="."/>
<xsl:with-param name="delimiters" select="'|'"/>
</xsl:call-template>
</xsl:variable>
thanks,
Xiaocun Xu
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list