以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  小教大家一下,但也请帮助我啊  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=32521)


--  作者:mooncarp
--  发布时间:5/16/2006 10:10:00 PM

--  小教大家一下,但也请帮助我啊
html文件源代码
------------------------------

<html>
<style type="text/css">
body{ font: 12px "宋体", "Arial", "Times New Roman"; }
table { font-size: 12px; border: 1px double; border-color: #99CC99 #99CC99 #CCCCCC #CCCCCC; cellpadding:3;cellspacing:3; bgcolor:#eeeeee; text-decoration: blink}
</style>
<body>
<table DATASRC="#swdb" width="1420" border="1" align="center" cellpadding="1" cellspacing="1" bordercolordark="#ffffff" bordercolorlight="#ADAAAD">
<thead>
<tr bgcolor="#FFCC99" align="center">
<td width="350" style="cursor:s-resize" onclick="sort('filename','descending');">文件名</td>
<td width="250">MD5</td>
<td width="500" style="cursor:s-resize" onclick="sort('title','descending');">软件名称</td>
<td width="80" style="cursor:s-resize" onclick="sort('date','ascending');">更新日期</td>
<td width="80">官方网站</td>
<td width="80" style="cursor:s-resize" onclick="sort('type','ascending');">软件分类</td>
<td width="80" style="cursor:s-resize" onclick="sort('size','descending');">文件大小</td>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><div DATAFLD="filename"></div></td>
<td align="center"><div DATAFLD="md5"></div></td>
<td align="left"><div DATAFLD="title"></div></td>
<td align="center"><div DATAFLD="date"></div></td>
<td align="center"><div DATAFLD="web"></div></td>
<td align="center"><div DATAFLD="type"></div></td>
<td align="center"><div DATAFLD="size"></div></td>
</tr>
</tbody>
</table>

<!--************************* The xml style  *************************-->

<xml id="swstyle">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml"/>
<xsl:param name="sortorder" select="'descending'"/>
<xsl:param name="sortfield" select="'xxx'"/>
<xsl:template match="/">
<softwares>
<xsl:for-each select="softwares/software">
<xsl:sort select="*[name()=$sortfield]" order="{$sortorder}" />
<software>
<filename><xsl:value-of select="filename"/></filename>
<md5><xsl:value-of select="md5"/></md5>
<title><xsl:value-of select="title"/></title>
<date><xsl:value-of select="date"/></date>
<date><xsl:value-of select="web"/></date>
<type><xsl:value-of select="type"/></type>
<size><xsl:value-of select="size"/></size>
</software>
</xsl:for-each>
</softwares>
</xsl:template>
</xsl:stylesheet>
</xml>

<!--************************* The xml style  *************************-->

<!--************************* vbscript  *************************-->

<script language="vbscript">
function sort(strSortField, strSortOrder)

  dim objXSL, objXML, objTemplate, objProcessor, strHTML, strDrinkType

  Set objXML = CreateObject("Msxml2.FreeThreadedDOMDocument")
  Set objXSL = CreateObject("Msxml2.FreeThreadedDOMDocument")
  
  'Load the XML document
  objXML.async = False
  objXML.Loadxml swdb.xml  
   
  'Load the XSL document
  objXSL.async = False
  objXSL.Loadxml swstyle.xml
      
  'Create an instance of our XSL Template object
  Set objTemplate = CreateObject("MSXML2.XSLTemplate")
      
  'Create an instance of our stylesheet object using our recently loaded XSLT document
  Set objTemplate.stylesheet = objXSL
       
  'Create an instance of our Processor object
  Set objProcessor = objTemplate.createProcessor

  'Define the input object for our object equal to our recently loaded XML document
  objProcessor.input = objXML

  'Now, finally we can add any parameters that we require to our Template processor
  objProcessor.AddParameter "sortfield", strSortField
  objProcessor.AddParameter "sortorder", strSortOrder
      
  'Last but not least we do our transformation
  objProcessor.Transform
      
  'Store the results of the output into a string.
  strXML = objProcessor.output

  'Load up an XML DOM object from the recent XML output
  objXML.loadxml strXML
  
  'Select only the "employees" elements from our document object
  objXML.selectNodes("//softwares")
  
  'Load our Data Island using our new XML object
  swdb.loadxml  objXML.xml  
end function  
</script>

<script language="javascript">
function sort2(xmlObj, xslObj, sortByColName)
{
var xmlData=eval("document.all."+xmlObj).XMLDocument;
var xslData=eval("document.all."+xslObj).XMLDocument;
var nodes=xslData.documentElement.selectSingleNode("xsl:for-each");
nodes.selectSingleNode("@order-by").value=sortByColName;
xmlData.documentElement.transformNodeToObject(xslData.documentElement,xmlData);
}
</script>

<!--************************* vbscript  *************************-->


<!--************************* The Software database  *************************-->

<xml id="swdb">
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/css"?>
<softwares>
  <software>
      <filename>ACDSee_v70PP_HB.rar</filename>
      <md5>54B3F236 C497F47E FCD520A7 A5C3D923</md5>
      <title>ACDSee V7.0.0 PowerPack build 61 + 破解补丁 + 中文补丁</title>
      <date>1995-11-21</date>
      <web><![CDATA[http://]]></web>
      <type>观图软件</type>
      <size>16123123</size>
  </software>
  <software>
      <filename>flashget_v170.rar</filename>
      <md5>54B3F236 C497F47E FCD520A7 A5C3D923</md5>
      <title>网际快车 V1.70 国际版 + 注册机(无线程和任务破解)</title>
      <date>2004-11-22</date>
      <web><![CDATA[http://www.amazesoft.com/]]></web>
      <type>下载软件</type>
      <size>2420120</size>
  </software>
  <software>
      <filename>Maxthon_v152.rar</filename>
      <md5>54B3F236 C497F47E FCD520A7 A5C3D923</md5>
      <title>Maxthon V1.5.2 豪华版</title>
      <date>2005-10-13</date>
      <web><![CDATA[http://www.maxthon.com/]]></web>
      <type>网页浏览</type>
      <size>3007889</size>
  </software>
  <software>
      <filename>QQ2006beta1.exe</filename>
      <md5>54B3F236 C497F47E FCD520A7 A5C3D923</md5>
      <title>腾讯QQ2006 beta1 官方简体中文版</title>
      <date>2006-01-11</date>
      <web><![CDATA[http://im.qq.com/]]></web>
      <type>网络聊天</type>
      <size>20910110</size>
  </software>
  <software>
      <filename>winrar_v351sc.exe</filename>
      <md5>54B3F236 C497F47E FCD520A7 A5C3D923</md5>
      <title>WinRAR V3.51 Final 官方简体中文正式版 + 注册补丁</title>
      <date>2004-03-03</date>
      <web><![CDATA[http://www.rarlab.com/]]></web>
      <type>压缩软件</type>
      <size>1050647</size>
  </software>
</softwares>
</xml>

</body>
</html>

-------------------------------

这个是我自己在网上找的代码,并修改了
主要特点是
把 HTML+CSS+XML+XSL+VBS 合并在一个HTML文件
并且可以进行列排序
希望对大家有所帮助

但是现在还有2个问题,希望大家能帮我解答啦
1. 怎么把 XML的网址做成链接,显示为 “官方网站”,我试了很多方法都没成功
2.数据库里的 SIZE 是代表文件大小,如果做个 VBS 或  JS 让它显示时格式化成 XX MB 或 XX KB,我对 VBS JS 不是很懂,还请各位多帮忙
在此先谢过啦:)




--  作者:Qr
--  发布时间:5/17/2006 3:19:00 PM

--  
链接:http://bbs.w3china.org/dispbbs.asp?boardID=8&ID=16826
--  作者:songshurong
--  发布时间:5/17/2006 4:08:00 PM

--  
<a href="{web}">
<xsl:value-of select="web"/>
</a>
--  作者:songshurong
--  发布时间:5/17/2006 4:09:00 PM

--  
<a href="{web}">
<xsl:value-of select="web"/>
</a>
--  作者:mooncarp
--  发布时间:5/17/2006 4:59:00 PM

--  
不行啊,好像跟排序的 VBS 有关

而且没排序前的这里 <td align="center"><div DATAFLD="web"></div></td>
也应该改吧?就是不会改55555555555555555555

有没有高手,帮帮我啊


--  作者:Qr
--  发布时间:5/17/2006 8:06:00 PM

--  
3楼的代码,如果是采用XML+XSL方式,那没问题。

但楼主的XSL代码的作用并不是将XML格式化成HTML,而是将XML转换成另一个基本相同的XML,只是转换后的XML是经过排序的。所以,3楼的代码在此没有发挥作用。

至于本例,只能从<td align="center"><div DATAFLD="web"></div></td>一句下手,关键是如何将web元素的值赋给标签A的href。

本人愚钝,几乎不会使用数据岛,无法解答,只是点出要害罢了。


--  作者:Qr
--  发布时间:5/17/2006 8:15:00 PM

--  数据岛 DSO 元素 DATAFLD 超链接 URL
一个变通的办法,问题解决。打个标记!

<td align="center"><a DATAFLD="web"><div DATAFLD="web"></div></a></td>

没想到锚A也支持DATAFLD属性。我太历害了:)


[此贴子已经被作者于2006-5-18 1:36:19编辑过]

--  作者:mooncarp
--  发布时间:5/17/2006 11:48:00 PM

--  
厉害厉害,不愧是斑竹

--  作者:mooncarp
--  发布时间:5/18/2006 3:08:00 PM

--  
还有一个问题啊

2.数据库里的 SIZE 是代表文件大小,如果做个 VBS 或  JS 让它显示时格式化成 XX MB 或 XX KB

谁会?帮个忙啊


--  作者:mooncarp
--  发布时间:5/20/2006 1:19:00 PM

--  
怎么没人了呢??
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
5,748.047ms