[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

xsl script

Subject: xsl script
From: Paul_B_Grimes@xxxxxxxxxx
Date: Wed, 11 Jul 2001 16:29:16 -0700
align right script
I am fairly stuck with the following code.  I keep getting an error message
stating "sortField is null or is not an object"  If anyone can help me
point out the problem with my code, it would be greatly appreciated.  (the
code is shown below).  This stylesheet is linked to an xml document with
the following format.


<current_projects xmlns="x-schema:sortProjects-schema.xml">
    <contents>Project Listing</contents>
    <date_span>2000 - 2001</date_span>
     <project>
          <project_title>PenMap Demonstration</project_title>
          <project_number>6</project_number>
          <description>blah blah</description>
          <start_date>7-23-01</start_date>
          <completion_date>8-19-01</completion_date>
          <cost>8000</cost>
          <contact_name>Loren Turner</contact_name>
          <contact_number>(916) 227-7174</contact_number>
          <branch>Geotechnology Implemtation Program</branch>
     </project>
     <project>
          <project_title>Continuous GPS: Pilot Applications - Phase
I</project_title>
          <project_number>2</project_number>
          <description>blah blah</description>
          <start_date>4-12-01</start_date>
          <completion_date>9-20-01</completion_date>
          <cost>110000</cost>
          <contact_name>Loren Turner</contact_name>
          <contact_number>(916) 227-7174</contact_number>
          <branch>Geotechnology Implementation Program</branch>
     </project>
.
.
.


Thank You
Paul Grimes

<?xml version="1.0"?>

<xsl:stylesheet
     xmlns:p="x-schema:sortProjects-schema.xml"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     <xsl:output method="html"/>
  <xsl:template match="/">
     <html>
      <head>
       <style>
         body {margin:0}
         .bg {font:8pt Verdana; background-color:blue; color:white}
         h1 {font:bold 14pt Verdana; width:100%; margin-top:1em}
         .row {font:8pt Verdana; border-bottom:1px solid green}
         .header {font:bold 9pt Verdana; cursor:hand; padding:2px;
border:2px outset gray}
         .up {background-color:lightsteelblue;}
         .down {background-color:whitesmoke;}
       </style>
      </head>
      <script><xsl:comment><![CDATA[
              var stylesheet = null;
                    var source = null;
                          var sortField =null;

          function sort(field, datatype)
           {
            sortField.setAttribute("select", "p:/" + field);
            sortField.setAttribute("data-type", datatype);
            listing.innerHTML =
source.documentElement.transformNode(stylesheet);
           }
       ]]></xsl:comment></script>

      <script for="window" event="onload"><xsl:comment><![CDATA[
        stylesheet = document.XSLDocument;
        source = document.XMLDocument;
        sortField = document.XSLDocument.selectSingleNode("//xsl:sort
[@select='p:project_number']");
       ]]></xsl:comment></script>

       <body>
         <table width="100%" cellspacing="0">
           <tr>
             <td class="bg"/>
             <td class="bg">
               <h1><xsl:value-of select="p:current_projects/p:contents"/>
                 for <xsl:apply-templates select
="p:current_projects/p:date_span"/></h1>
             </td>
           </tr>
           <tr>
             <td class="bg" width="120" valign="top">
               <p>Click on the column headers to sort by that field.</p>
             </td>
             <td class="bg" valign="top">
               <div id="listing"><xsl:apply-templates select
="p:current_projects"/></div>
             </td>
           </tr>
          </table>
        </body>
      </html>
     </xsl:template>

     <xsl:template match="p:current_projects">
         <table style="background-color:whitesmoke">
           <thead>
             <td><div class="header" onClick="sort('project_title',
'text')">Project <br/>Title<br/></div></td>
             <td><div class="header" onClick="sort('project_number',
'number')">Project Number</div></td>
             <td><div class="header" onClick="sort('start_date',
'number')">Start Date</div></td>
             <td><div class="header" onClick="sort('completion_date',
'number')">Completion Date</div></td>
             <td><div class="header" onClick="sort('cost',
'number')">Project Cost</div></td>
             <td><div class="header" onClick="sort('contact_name',
'text')">Contact Name</div></td>
             <td><div class="header" onClick="sort('contact_number',
'number')">Contact Number</div></td>
           </thead>
           <xsl:for-each select="p:project">
                                     <xsl:sort select="project_title"
data-type="text"/>
             <tr>
              <xsl:for-each select="p:project_number">
                 <xsl:if test=". &gt; 20">
                    <xsl:attribute name="class">up</xsl:attribute>
                 </xsl:if>
               </xsl:for-each>
               <xsl:for-each select="start_date">
                 <xsl:if test=". &lt; 0">
                    <xsl:attribute name="class">down</xsl:attribute>
                 </xsl:if>
               </xsl:for-each>
               <xsl:for-each select="completion_date">
                 <xsl:if test=". &lt; 0">
                    <xsl:attribute name="class">down</xsl:attribute>
                 </xsl:if>
               </xsl:for-each>
              <td><div class="row"><xsl:value-of select
="p:project_title"/></div></td>
              <td><div class="row" style
="text-align:right"><xsl:apply-templates select
="p:project_number"/></div></td>
              <td><div class="row" style
="text-align:right"><xsl:apply-templates select="p:start_date"/></div></td>
              <td><div class="row" style
="text-align:right"><xsl:apply-templates select
="p:completion_date"/></div></td>
              <td><div class="row" style="text-align:right">
$<xsl:apply-templates select="p:cost"/></div></td>
              <td><div class="row"><xsl:value-of select
="p:contact_name"/></div></td>
              <td><div class="row" style
="text-align:right"><xsl:apply-templates select
="p:contact_number"/></div></td>
          </tr>
         </xsl:for-each>
        </table>
       </xsl:template>


      <xsl:template match="p:cost">
         <xsl:value-of select="format-number(., '##0.00')"/>
      </xsl:template>
</xsl:stylesheet>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread
  • xsl script
    • Paul_B_Grimes - Wed, 11 Jul 2001 19:34:40 -0400 (EDT) <=

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.