This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
xsl:sort Please Help
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] xsl:sort Please Help
- From: Paul_B_Grimes at dot dot ca dot gov
- Date: Thu, 28 Jun 2001 13:25:01 -0700
- Reply-To: xsl-list at lists dot mulberrytech dot com
I am having problems using xsl:sort. I have found that the 'order-by'
element works fine, but I need to sort numerically also. I use the
'order-by' element with basically the same xsl (t) sheet. I just can't
understand why xsl:sort isn't working. I have included my xsl code and a
link to a site where I am testing this application.
http://www22.brinkster.com/pgrimes/XML%20Project%20Sorter/project.html
<current_projects>
<xsl:for-each xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:sort select="cost" data-type="number"/>
<project>
<project_title>
<xsl:value-of select="project_title"/>
</project_title>
<project_number>
<xsl:value-of select="project_number"/>
</project_number>
<start_date>
<xsl:value-of select="start_date"/>
</start_date>
<completion_date>
<xsl:value-of select="completion_date"/>
</completion_date>
<cost>
<xsl:value-of select="cost"/>
</cost>
<contact_name>
<xsl:value-of select="contact_name"/>
</contact_name>
<contact_number>
<xsl:value-of select="contact_number"/>
</contact_number>
</project>
</xsl:for-each>
</current_projects>
One Idea I have as to why it doesn't work is that maybe the sort element
doesn't interface with javascript well. I assign the appropriate xslt
file to my xml file using java script in an html page. Here is the code:
<html>
<body>
<link rel="stylesheet" type="text/css" href="ProjectSorted.css" />
<XML id="xmldso"></XML>
<XML id="sortTitle" src="sortTitle.xslt"></XML>
<XML id="sortProjectNum" src="sortProjectNum.xslt"></XML>
<XML id="sortStartDate" src="sortStartDate.xslt"></XML>
<XML id="sortCompleteDate" src="sortCompleteDate.xslt"></XML>
<XML id="sortCost" src="sortCost.xslt"></XML>
<XML id="sortName" src="sortName.xslt"></XML>
<XML id="sortContactNum" src="sortContactNum.xslt"></XML>
<SCRIPT language="javascript">
xmldso.async = false;
xmldso.load("project.xml");
var xmldoc = xmldso.cloneNode(true);
function ApplyStyleSheet(xsldoc){
xmldoc.documentElement.transformNodeToObject(xsldoc.documentElement,xmldso.XMLDocument);
}
function doMouseOver()
{
event.srcElement.parentElement.style.background = "lightsteelblue";
}
function doMouseOut()
{
event.srcElement.parentElement.style.background = "whitesmoke";
}
</SCRIPT>
<br />
<br />
<a href="Create%20XML/createxml.asp">Click here to submit a project to be
added
to this page.</a><br />
<div align="center"><h1>Click on a heading to sort by the corresponding
information.</h1></div>
<table id="table" datasrc='#xmldso' Border="1" bordercolor="steelblue"
bgcolor="steelblue" cellpadding="3" width="100%" align="center">
<thead> <th>
<a href="javascript:ApplyStyleSheet(sortTitle.XMLDocument);">Project
Title</a>
</th>
<th>
<a href="javascript:ApplyStyleSheet(sortProjectNum.XMLDocument);">
Project Number</a>
</th>
<th>
<a href="javascript:ApplyStyleSheet(sortStartDate.XMLDocument);">
Start Date</a>
</th>
<th>
<a href="javascript:ApplyStyleSheet(sortCompleteDate.XMLDocument);">
Completion Date</a>
</th>
<th>
<a href="javascript:ApplyStyleSheet(sortCost.XMLDocument);">Cost</a>
</th>
<th>
<a href="javascript:ApplyStyleSheet(sortName.XMLDocument);">Contact
Name</a>
</th>
<th>
<a href="javascript:ApplyStyleSheet(sortContactNum.XMLDocument);">
Contact Number</a>
</th>
</thead>
<tr onMouseOver="doMouseOver()" onMouseOut="doMouseOut()">
<td width="137"><font size="3"><span datafld="project_title"></span></
font></td>
<td width="137"><font><span datafld="project_number"></span><br /></
font></td>
<td width="137"><font><span datafld="start_date"></span><br /></font></
td>
<td width="137"><font><span datafld="completion_date"></span><br /></
font></td>
<td width="96"><font><span datafld="cost"></span><br /></font></td>
<td width="178"><font><span datafld="contact_name"></span><br /></font
></td>
<td width="137"><font><span datafld="contact_number"></span><br /></
font></td>
</tr>
</table>
</body>
</html>
Thanks a lot for any input... Paul Grimes
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list