|
Subject: Re: [xsl] Passing a variable number of parameters? From: Jakob Fix <jakob.fix@xxxxxxxxx> Date: Mon, 27 Sep 2004 17:46:19 +0200 |
David, Andrew,
thanks so far for your input. On the one hand I am relieved that
there's no obvious solution which I missed, on the other hand I an
worried about the same thing, i.e. there's no straightforward way to
do what I need to do.
Does that mean what I want to do is weird and unusual (not that I
would mind ;-)?
On Mon, 27 Sep 2004 16:26:17 +0100, Andrew Welch
<ajwelch@xxxxxxxxxxxxxxx> wrote:
>
> > This leads me to the second part of my question, because
> > somebody could say "Why don't you try it out?". I need to
> > implement this in Javascript, and so far I haven't found a
> > way to create a NodeList that would be accepted by the XSL
> > processor (be it Gecko or MSIE) as valid parameter; I receive
> > "incompatibe type" errors.
>
> If you are struggling to create a node list to pass in as a parameter,
> two other solutions are:
>
> 1. Create an xml file out of your node-list and then reference that
> using the document() function. For example:
>
> params.xml
>
> <params>
> <param name="bar" value="baz"/>
> <param name="hello" value="world"/>
> </params/>
>
> Then use:
>
> <xsl:variable name="params" select="document('params.xml')"/>
Well, in a multi-user environment this won't work, unless I create a
unique file for each request which is out of the question, and
impossible as the client in this application cannot create files on
the server.
> 2. Create your params as a well-formed string and then combine with the
> xml document (in also in string form) and then transform that. For
> example:
>
> var params = "<params> ..blah </params>";
> var xmlDoc = "<root>" + params + original_xml_doc + "</root>";
>
> (note the containing root element to keep everything well-formed)
This is interesting, I would have to modify the in-memory
representation of the source XML file. I haven't thought of this,
probably because of was too focussed on the nodelist-as-a-parameter
problem. Looking at your idea, it's certainly not a clean solution
because I have to modify the source file which is Not a Good Thing,
but it would at least be a temporary hack.
> You can then access your parameters using:
>
> <xsl:variable name="params" select="/root/params"/>
>
> cheers
> andrew
By the way, how is this problem dealt with in other languages? Is
this a Javascript idiosyncracy? I suppose Java has a NodeList type
which processors will gladly accept?
thanks.
--
cheers,
Jakob.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Passing a variable number, Andrew Welch | Thread | Re: [xsl] Passing a variable number, David Carlisle |
| [xsl] FW: problem integrating xsl i, Mac Rost | Date | Re: [xsl] FW: problem integrating x, David Carlisle |
| Month |