Subject: Re: [xsl] Passing javascript variable as parameter to XSL From: "Dean Fiala" <dfiala@xxxxxxxxx> Date: Wed, 26 Apr 2006 06:25:10 -0400 |
You can test if the parameter is getting passed by displaying it in your output... <xsl:template match="rwsdomesticportfolio/partner"> <xsl:value-of select="$partnername" /> but I believe your problem is that you don't need the single quotes here <xsl:if test="varpage='$partnername'"> this should work <xsl:if test="varpage=$partnername"> On 4/26/06, Spencer Easterbrook <s.easterbrook@xxxxxxxxxxxx> wrote: > Hi all, > > Firstly, I confess ... I'm relatively new to XSL, but what I have been > able to learn and use has been thanks largely to posts on lists and > forums, and so I'm sure that this is the best place to ask my question. > Forgive me for what is, I'm sure, a reasonably simple problem! > > Problem: I have an HTML page called 'test.html'. This page is only a > test page to sort out this functionality, but what it should do is > return a table consisting of elements from the selected record in the > XML file. > > The code for the html file is: > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> > <html><HEAD></HEAD><body> > <div id="Ranges" class="varRangeDisplay"> > <script language="javascript"> > var URL1 = unescape(location.href) // get current URL in plain ASCII > var xstart1 = URL1.lastIndexOf("/") + 1 > var xend1 = URL1.length > var varpage = URL1.substring(xstart1,xend1); > > // varpage now contains the page name. > //document.write(varpage); > var xslt = new ActiveXObject("Msxml2.XSLTemplate"); > var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); > var xslProc; > xslDoc.async = false; > xslDoc.resolveExternals = false; > xslDoc.load("../scripts/hereName.xsl"); > xslt.stylesheet = xslDoc; > var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); > xmlDoc.async = false; > xmlDoc.resolveExternals = false; > xmlDoc.load("../Content/domestic_portfolio.xml"); > xslProc = xslt.createProcessor(); > xslProc.input = xmlDoc; > xslProc.addParameter("partnername", varpage); > xslProc.transform(); > document.write(xslProc.output); > </script> > </div></body> > > Note: The javascript variable I am trying to pass is called "varpage" > and evaluates (successfully) to the name of the html document (in this > case 'test.html'). I am using addParameter to add a parameter called > "partnername" to the xslProc transformation to use as a XSL:PARAM in the > XSL file. But it's not working ... the XSL I have done is: > <?xml version="1.0" encoding="iso-8859-1"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="html" encoding="iso-8859-1"/> > <xsl:param name="partnername"></xsl:param> > <xsl:template match="rwsdomesticportfolio/partner"> > <xsl:if test="varpage='$partnername'"> > <table border="1"><tr> > <xsl:for-each select="portfolio/range"> > <td valign="top"> > <xsl:value-of select="rangename"/> > <table border="1"> > <xsl:for-each select="varietal"> > <tr><td align="center"> > <xsl:element name="IMG"> > <xsl:attribute name="SRC"> > <xsl:value-of select="bottleshot"/></xsl:attribute> > <xsl:attribute name="BORDER">0</xsl:attribute> > </xsl:element><br /> > <xsl:value-of select="varietalname"/> > </td></tr> > </xsl:for-each> > </table><br /> > </td></xsl:for-each> > </tr></table> > </xsl:if> > </xsl:template> > </xsl:stylesheet> > > The XML file I'm using is available at: > http://web.aanet.com.au/HairyBeast/rws/Content/domestic_portfolio.xml > ... it's fairly long so I didn't put it in here. The important piece is > an element called <varpage> within each <partner> record which I'm using > to test against in the XSL. > > Basically, I'm getting nothing returned, which means that either the > xsl:if test is failing or the parameter is not being passed. > > What's really bugging me is that if I hardcode the page name in the XSL, > then it works fine (e.g. <xsl:if test="varpage='test.html">, or any > other valid varpage value in the XML)!! > > I will be eternally grateful if anyone is able to spot the problem and > let me know how to fix it!! > > Regards, Spencer > > -- Dean Fiala Very Practical Software, Inc Now with Blogging... http://www.vpsw.com/blogbaby Microsoft MVP
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Passing javascript variable a, Spencer Easterbrook | Thread | AW: [xsl] xsl:for-each and xml:spac, Buchcik, Kasimier |
AW: [xsl] xsl:for-each and xml:spac, Buchcik, Kasimier | Date | [xsl] split string to whole words b, andrew welch |
Month |