xsl-list
[Top] [All Lists]

RE: [xsl] RE: Troubling passing parameter to xsl:sort via ASP

2007-08-02 09:54:18
Thanks.  This did the trick and I can now pass my order parameter.

Now I want to add a second parameter to pass ascending/descending To the
sort order.  Based on everyone's comments, I have changed my xslt to this:

<xsl:param name="order"/>
<xsl:param name="orderdirection" select="'ascending'"/>
.
.
.
<xsl:sort select="*[name()=$order]" order="$orderdirection"/>

I added to my asp page:
xslProc.addParameter "orderdirection", strOrderDirection

However, when I run my page, I get this error:

The value of the "order" attribute may only be "ascending" or "descending". 




-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com] 
Sent: Thursday, August 02, 2007 12:27 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] RE: Troubling passing parameter to xsl:sort via ASP


Funnily enough I just posted

<xsl:sort select="$order"/>

as an example of the-most-common-programming-mistakes over on an XQuery
list.

If $order is "foo", then the sort key for every element is the string "foo",
so every element has the same sort key, so they are returned in their
original order. You want select="*[name()=$foo]".

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Jessica Hennessey [mailto:jessica(_at_)sunlightstudios-icd(_dot_)com]
Sent: 02 August 2007 17:12
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] RE: Troubling passing parameter to xsl:sort via ASP

I am a complete newbie at xml/xsl and can't figure out why my
parameter is not being "read" by my xsl template.  The XML 
document is dynamically generated each time the page runs.  I 
have no control over how that gets generated.
****************************************************
ASP Code:
Set objXmlHttp1 = Server.CreateObject("Msxml2.serverxmlhttp")
Set objDom = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
objXmlHttp1.send strSend
xmlOK = objDom.loadXML (objXmlHttp1.responseText)

set xsl = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
xsl.async = false
xslOK = xsl.load(Server.MapPath("includes/joblist.xsl"))

 set xslt = Server.CreateObject("MSXML2.XSLTemplate")
 set xslt.stylesheet = xsl
 Set xslProc = xslt.createProcessor()
 xslProc.input = objDom
 xslProc.addParameter "order", request("order")
xslProc.transform  sOutput = xslProc.output  response.write 
sOutput  set xslProc = nothing  set xslt = nothing
******************************************************************

XSL Code:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:param name="order"/>

<xsl:template match="/">
      <xsl:for-each select="root/job">
   <xsl:sort select="$order" order="ascending"/>

      <tr>
        <td><a>
   <xsl:attribute name="href">jobdetail.asp?jobid=<xsl:value-of
select="JOBPOSTINGID_INT"/></xsl:attribute>
   <xsl:value-of select="TITLE_STRING" /></a></td>
  <td><xsl:value-of select="CITY_STRING"/>, <xsl:value-of
select="STATE_STRING"/></td>
        <td><xsl:value-of select="EMPLOYMENTTYPE_STRING"/></td>
      </tr>
      </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
**************************************************************
************
 
 
Jessica Hennessey
Sunlight Studios - Internet Consulting & Development
www.sunlightstudios-icd.com


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--