RE: Passing a variable number of parameters or rather
Thanks everyone for the help. Argh, so I tried this approach and I even found another example of it at: http://www.xml.com/lpt/a/2003/05/07/tr.html And yet it doesn't work in xalan, which is frustrating: <xsl:variable name="sampleString">XML,XSLT,XPath,SVG,XPointer</xsl:variable> <xsl:variable name="tokenizedSample" select="tokenize($sampleString,',')"/> <xsl:for-each select="$tokenizedSample"> <xsl:value-of select="."/> <xsl:text>! </xsl:text> </xsl:for-each> does anyone know why this gives me the error: ERROR: 'Error checking type of the expression 'funcall(tokenize, [variable-ref(sampleString/result-tree), literal-expr(,)])'.' FATAL ERROR: 'Could not compile stylesheet' -----Original Message----- From: Ramkumar Menon [mailto:ramkumar.menon@xxxxxxxxx] Sent: Wednesday, April 20, 2005 3:49 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: Passing a variable number of parameters or rather an array Just give this a try..... I havent tried it out myself.... Step1 : Store it into a variable.. Step 2: Iterate through using <for-each> <for-each select="tokenize($category,'\s+')"> <individualFruit> <xsl:value-of select="."/> </individualFruit> </xsl:for-each> On 4/20/05, kent <kent@xxxxxxxxxxxxxxxxx> wrote: > Also a good idea, but do I have to go and save the xml as a file, is there > no way of passing in the it in also as a parameter, performance is not a > huge issue, but I wouldn't mind saving a bit of disk latency. > > More importantly how do I do array/string in some sort of loop, sorry I > am very new to xslt. > > thanks > > > -----Original Message----- > From: Colin Paul Adams [mailto:colin@xxxxxxxxxxxxxxxxxx] > Sent: Wednesday, April 20, 2005 3:12 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Passing a variable number of parameters or rather an > array > > >>>>> "kent" == kent <kent@xxxxxxxxxxxxxxxxx> writes: > > kent> I have had a trawl on this subject, but I the best answer I > kent> can get is 'You can pass a nodeset, which can be treated as > kent> the XML equivalent of an Array'. However I am not sure how > kent> to create the nodeset, pass it, and then deal with it in the > kent> stylesheet. > > kent> I would like to pass an array of strings to the > kent> stylesheet. Does anyone have an example of doing this, or > kent> know where one is. I looked at xalan examples and none of > kent> the examples seem to fit, plus I can't find one anywhere > kent> else. > > The details of how to pass stylesheet parameters to a transformer is > specific to the particular XSLT processor. > > But there is a portable (*) way of doing what you want to do: > > Create your array as an xml document: e,g.: > > <array> > <string>string one</string> > <string>string two</string> > </array> > > Then pass the URI of this document as a string-valued parameter, and > use the document() function to access the array. > > Now you can use XPath expressions such as array/string to get the > first string-value from this document. > > (*) assuming that all XSLT processors allow you to pass a > string-constant as a parameter. > -- > Colin Paul Adams > Preston Lancashire > > -- Shift to the left, shift to the right! Pop up, push down, byte, byte, byte! -Ramkumar Menon A typical Macroprocessor
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format