xsl-list
[Top] [All Lists]

passing values from JavaScript to XSL using MSXML3

2003-07-20 00:00:10
I need to pass a value from JavaScript code to <xsl:param name="sortBy"
select="'date'" /> in XSL code.
How would I accomplish this?

I read this bit, and wasn't exactly clear on the whole JavaScript part.

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.


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