xsl-list
[Top] [All Lists]

RE: [xsl] Re: xsl-list Digest 28 May 2008 05:10:01 -0000 Issue 1511

2008-05-28 09:49:00
So, your beautifully crafted instruction:

<xsl:value-of
   select="for $s in $skus return 
key('sku',$s[document('mySkus.xml')/skus/sku[starts-with(.,$s)
]],$root)/name"
   separator=", "/>

leads me to read more on sequence expressions.  I've got to 
go figure out why the <xsl:for-each> was not the correct way, 
how the locally defined <$s> variable works, and how the 
brackets <[]> work.

Some hints:

1. xsl:value-of can output a sequence of values separated by a given
separator (which defaults to a single space)

2. "for $x in SEQ return f($x)" applies some processing to each item in SEQ
in turn, referring to that item as $x

3. $x[predicate], where $x is a single item (which is the case here) returns
either $x or nothing, depending on whether the predicate is true.

4. The predicate here tests whether mySkus.xml contains a sku that starts
with the string $s

5. key('sku', X, $root) searches the tree rooted at $root for a node whose
sku key is equal to X; if X is "nothing" (see 3 above) then key() returns
nothing.

Michael Kay
http://www.saxonica.com/



Interesting that IE and Firefox fail to transform using the 
stylesheet where Saxon does it just fine.  I guess they don't 
have built-in version 2 XSLT and/or XPATH features?... 

Correct, none of the browsers yet support XSLT 2.0.


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--