Subject: RE: [xsl] xsl script From: "Chris Bayes" <Chris@xxxxxxxxxxx> Date: Thu, 12 Jul 2001 10:47:17 +0100 |
Paul, This isn't really an xslt problem. You are getting the error because sortField is null and not an object. You do this to find your sort element sortField = document.XSLDocument.selectSingleNode("//xsl:sort[@select='p:project_number' ]"); and you do not have a sort element with a select that equals p:project_number so selectSingleNode returns null. When you try and use it it gives that error. I would change the way you do this to pass a param to the stylesheet. Have a look on my site in the tutorials section to find out how to do this. Ciao Chris XML/XSL Portal http://www.bayes.co.uk/xml >-----Original Message----- >From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx >[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of >Paul_B_Grimes@xxxxxxxxxx >Sent: 12 July 2001 00:29 >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >Subject: [xsl] xsl 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=". > 20"> > <xsl:attribute name="class">up</xsl:attribute> > </xsl:if> > </xsl:for-each> > <xsl:for-each select="start_date"> > <xsl:if test=". < 0"> > <xsl:attribute name="class">down</xsl:attribute> > </xsl:if> > </xsl:for-each> > <xsl:for-each select="completion_date"> > <xsl:if test=". < 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 > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] xsl script, Paul_B_Grimes | Thread | [xsl] How to output a xmlns:prefix , Richard Gruet |
Re: [xsl] [ANN:] RTFOutputHandler (, Eric van der Vlist | Date | RE: [xsl] Transforming using Javasc, Chris Bayes |
Month |