This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Looping and assigning into variable
- From: Meiyu Lin <MeiyuL at bsquare dot com>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 28 Mar 2002 11:29:15 -0800
- Subject: RE: [xsl] Looping and assigning into variable
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Michael,
This is just what I am looking for but I just tried the following:
var categorySelect = new Array(30);
var driverName = new Array(30);
var driverDesc = new Array(30);
<xsl:for-each select= "driverlist">
<comment>
categorySelect[techInd] = '<xsl:value-of select="category" />'
driverName[techInd] = '<xsl:value-of select="drivername" />'
driverDesc[techInd++] = '<xsl:value-of select="driverdesc" />'
</comment>
</xsl:for-each>
<xsl:for-each select= "bsqapplist">
<comment>
categorySelect[appInd] = '<xsl:value-of select="bsqappcategory" />'
driverName[appInd] = '<xsl:value-of select="bsqappname" />'
driverDesc[appInd++] = '<xsl:value-of select="bsqappdesc" />'
</comment>
</xsl:for-each>
I tried
categorySelect[techInd] = <xsl:value-of select="category" />
The results for the vars are undefined. Could you tell me what did I do
wrong? Thank you.
Meiyu
-----Original Message-----
From: Michael Kay [mailto:michael.h.kay@ntlworld.com]
Sent: Thursday, March 28, 2002 8:54 AM
To: xsl-list@lists.mulberrytech.com
Subject: RE: [xsl] Looping and assigning into variable
> How can I do this in XSLT?
Not by trying to update a variable, that's not the way XSLT works.
Do it like this:
<xsl:variable name="commentVar">
<xsl:for-each select="Header">
<xsl:value-of select="Comment"/>
</xsl:for-each>
</xsl:variable>
<Comments>
<xsl:value-of select="$commentVar"/>
</Comments>
Of course, you might not need a variable at all, you can just do the
xsl:for-each inside the <Comments> element.
In XPath 2.0 / Saxon 7.0, you can just do:
<Comments>
<xsl:value-of select="Header/Comment" separator=""/>
</Comments>
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
>
> <xsl: variable name="CommentVar"/>
>
> <xsl:for-each select="Header">
>
> <!-- here i would like to get the current 'Comment'
> value and
> concatenate with the previous comment value
> through above 'CommentVar', something like below-->
> <xsl:value-of
> select="CommentVar=concat(Comment,$CommentVar)"/>
>
> </xsl:for-each>
>
> <!-- here I would like to get the concatenated list of all
> 'Comment' values -->
> <Comments>
> <xsl:value-of select="$CommentVar"/>
> </Comments>
>
> Basically Each 'Header' element has 1 'Comment' child element
> in it. So
> I have to loop through all headers and finally get the
> complete list of
> concatenated 'Comment's
>
>
> Thanks in advance..
> VENKAT
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list