This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Passing javascript value into xsl


Hi Mick,

> I want to use this value as a filter for another bit of xsl:
>
> <xsl:for-each select="mabinogion/tale[talename=' ->x goes here<- ']">
>         <xsl:for-each select="manuscript">
>                 <xsl:value-of select="manuscriptname"/>
>                 <br/>
>         </xsl:for-each>
> </xsl:for-each>

OK. The x is declared in the Javascript within your page, and you want
it to be used within a stylesheet that you're using from that
Javascript. The standard way of making that happen is to pass the
value of x in as a parameter to the stylesheet. You need to declare
the parameter at the top level of the stylesheet:

<xsl:param name="x" select="'default'" />

and then use it in the select expression as above:

  <xsl:for-each select="mabinogion/tale[talename = $x]">
     ...
  </xsl:for-each>

How you pass in the value depends on the XSLT processor.  I guess that
you're using MSXML3, so you want something along the lines of:

   var x = tales.tales.value;
   ...
   XSLTProcessor.addParameter('x', x);
   XSLTProcessor.transform();
   list.innerHTML = XSLTProcess.output;

Note that the stylesheet here is run on an entire source XML, and
everything that it produces is put within the innerHTML of the list,
so you want it to only produce whatever you want within the list.

Another way of doing it if you only want a bit of what the stylesheet
produces is to use the MSXML transformNode() method.  To use that with
a parameter, you need to change the XSLT DOM by hand, something like:

  var xParam = stylesheet.selectSingleNode("/*/xsl:param[@name = \'x\']/@select");
  xParam.value = x;
  list.innerHTML = sourceNode.transformNode(stylesheet);

There are examples in the MSXML SDK documentation and on the Microsoft
site.

I hope that helps,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]