[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Using javascript to pass a parameter to XSL
Subject: RE: [xsl] Using javascript to pass a parameter to XSL From: Pieter Reint Siegers Kort <pieter.siegers@xxxxxxxxxxx> Date: Thu, 17 Mar 2005 11:41:42 -0600 |
Hi Maria, > I've almost got it but it doesn't quite work. What exactly doesn't work? Let's see... To start, first error I get is from MSXML 3.0 that complains: "The value of the "order" attribute may only be "ascending" or "descending"" See Michael Kay's 2nd Edition of XSLT, page 296. I suggest you want the parameter "order" to contain "ascending" or "descending", right? Try <xsl:sort select="$sortKey" order="{$sortOrder}"/> That should do the trick. Cheers, <prs/> -----Original Message----- From: Maria Amuchastegui [mailto:mamuchastegui@xxxxxxxxxxx] Sent: Jueves, 17 de Marzo de 2005 11:12 a.m. To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] Using javascript to pass a parameter to XSL I have an HTML file with an embedded XML island which calls an external stylesheet. I want to use Javascript to pass a parameter to the stylesheet using the addParameter method. I've almost got it but it doesn't quite work. Here is the HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script language="JavaScript"> function sortXML(column,order) { var xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0"); var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0"); var xslproc; xsldoc.async = false; xsldoc.load('Sort.xsl'); xslt.stylesheet = xsldoc; var xmldoc = document.getElementById('ChargeableMessages'); xslproc = xslt.createProcessor(); xslproc.input = xmldoc; xslproc.addParameter("sortKey", column); xslproc.addParameter("sortOrder", order); xslproc.transform(); container.innerHTML = xmldoc.transformNode(xsldoc); } </script> </head> <body onload="sortXML('id','ascending');"> <div id="container"></div> <xml id="ChargeableMessages" style="display:none;"> <chargeablemessages> <message> <id>1-01</id> <date>2005-04-23</date> <location>Quebec QC</location> <number>418 683 1234</number> <duration>1</duration> <charges>0.43</charges> <savings>.043</savings> <amount/> </message> <message> <id>1-02</id> <date>2005-04-28</date> <location>Montreal QC</location> <number>514 485 6611</number> <duration>2</duration> <charges>3.44</charges> <savings/> <amount/> </message> <message> <id>1-03</id> <date>2005-05-01</date> <location>Winnipeg MB</location> <number>204 475 4565</number> <duration>22</duration> <charges>0.55</charges> <savings/> <amount/> </message> </chargeablemessages> </xml> </body> </html> And here is the stylesheet: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="sortKey"/> <xsl:param name="sortOrder"/> <xsl:template match="/"> <xsl:apply-templates select="chargeablemessages"/> </xsl:template> <xsl:template match="chargeablemessages"> <h3>Long distance calls - Click on any column heading to sort</h3> <table border="1"> <tbody> <tr> <th><a href="#" onclick="sortXML('id','ascending');">ID</a></th> <th><a href="#" onclick="sortXML('date','ascending');">Date</a></th> <th><a href="#" onclick="sortXML('location','ascending');">Location</a></th> <th><a href="#" onclick="sortXML('number','ascending');">Number</a></th> <th><a href="#" onclick="sortXML('duration','ascending');">Duration</a></th> <th><a href="#" onclick="sortXML('charges','ascending');">Charges</a></th> </tr> <xsl:apply-templates select="//message"> <xsl:sort select="$sortKey" order="$sortOrder"/> </xsl:apply-templates> </tbody> </table> </xsl:template> <xsl:template match="//message"> <tr> <td><xsl:value-of select="id"/></td> <td><xsl:value-of select="date"/></td> <td><xsl:value-of select="location"/></td> <td><xsl:value-of select="number"/></td> <td><xsl:value-of select="duration"/></td> <td><xsl:value-of select="charges"/></td> </tr> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Using javascript to pass a pa, Maria Amuchastegui | Thread | RE: [xsl] Using javascript to pass , Maria Amuchastegui |
[xsl] how to define a namespace-pre, Siegfried Baiz | Date | Re: [xsl] how to define a namespace, David Carlisle |
Month |