1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
   |  
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:output method="html" indent="yes"/>
 
    <xsl:param name="field"/>
    <xsl:param name="order"/>
 
    <xsl:template match="persons">
     <html>
         <head>
         <script type="text/javascript">
        function tri(field,order) {
             var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0"); 
            var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
 
             var xslProc; 
             xslDoc.async = false;
             xslDoc.load("tridyna.xsl"); 
             xslt.stylesheet = xslDoc; 
             var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); 
             xmlDoc.async = false; 
             xmlDoc.load("test.xml"); 
             xslProc = xslt.createProcessor(); 
             xslProc.input = xmlDoc; 
             xslProc.addParameter("field", field); 
             xslProc.addParameter("order", order); 
             xslProc.transform(); 
             document.body.innerHTML=xslProc.output;
         }
         </script>
         </head>
         <body>
             <script type="text/javascript">
              tri('name', 'ascending');
             </script>
     <table>
       <xsl:variable name="neworder">
            <xsl:if test="$order='ascending'">descending</xsl:if>
            <xsl:if test="$order='descending'">ascending</xsl:if>
          </xsl:variable>
          <tr>
               <th>
                <a href="javascript:tri('name','{$neworder}')">name</a>
               </th>
               <th>
                <a href="javascript:tri('phone','{$neworder}')">phone number</a>
               </th>
          </tr>
 
            <xsl:for-each select="person">
              <xsl:sort select="*[name()=$field]" order="{$order}"/>
                 <tr>
                     <td>
                        <xsl:value-of select="name"/>
                     </td>
                     <td>
                        <xsl:value-of select="phone"/>
                     </td>
                 </tr>
            </xsl:for-each>
         </table>
        </body>
     </html>
    </xsl:template>
 </xsl:stylesheet> |