xsl-list
[Top] [All Lists]

Re: setParameter method in Netscape

2005-03-18 07:09:30
Why don't you use Sarissa that has a cross-browser Javascript library,
it's free as in beer, and open-source too?

http://sarissa.sourceforge.net


On Fri, 18 Mar 2005 08:29:57 -0500, Maria Amuchastegui
<mamuchastegui(_at_)to(_dot_)epost(_dot_)ca> wrote:
Now I am trying to duplicate the same functionality in Netscape, i.e. use
the setParameter method to pass a parameter to a stylesheet. The parameter
seems to be getting passed but the data is not sorting. I read "The
XSLT/JavaScript Interface in Gecko" but the code does not seem to work. Any
suggestions on how to get it to work?

Here is the HTML/XML:

<html>
<head>
<script language="JavaScript">
function sortXML(column,order)
{
                 var xslStylesheet;
                 var xsltProcessor = new XSLTProcessor();
                 var myDOM;
                 var xmlDoc;

                 // load the xslt file
                 var myXMLHTTPRequest = new XMLHttpRequest();
                 myXMLHTTPRequest.open("GET", "Sort.xsl", false);
                 myXMLHTTPRequest.send(null);
                 xslStylesheet = myXMLHTTPRequest.responseXML;
                 xsltProcessor.importStylesheet(xslStylesheet);

                 // create a new XML document in memory
                 var xmlDoc = document.implementation.createDocument("", "",
null);
                 var myNode = document.getElementById('ChargeableMessages');
                 var clonedNode =
xmlDoc.importNode(myNode.childNodes.item(1), true);
                 xmlDoc.appendChild(clonedNode);

                 // set the parameter using the parameter passed to the
outputgroup function
                 xsltProcessor.setParameter(null, "sortKey", column);
                 xsltProcessor.setParameter(null, "sortOrder", order);;
                 var fragment =
xsltProcessor.transformToFragment(xmlDoc,document);
                 document.getElementById("container").innerHTML = "";
                 myDOM = fragment;
                 document.getElementById("container").appendChild(fragment);
}

</script>
</head>

<body onload="sortXML('id','descending');">

<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:output method="html"/>
        <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="*[name() =
$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>

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>