跟小D每日学口语

xml & xslt的应用

//学费标准样式表.xsl
  <?xml version="1.0" encoding="gb2312" ?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
- <xsl:template match="/">
- <html>
- <head>
  <title>学费标准</title>
  <style type="text/css">*{ font-size:12px; } h1{ color:red; font-size:18px; }</style>
  </head>
- <body>
  <h1 align="center">学费标准</h1>
- <table align="center" width="80%" border="0" cellpadding="4" cellspacing="1" bgcolor="#999999">
- <tr bgcolor="cccccc">
  <th>学期</th>
  <th>课时费</th>
  <th>学时</th>
  <th>学费小计</th>
  <th>教材费</th>
  <th>考试费</th>
  <th>证书费</th>
  <th>合计</th>
  </tr>
  <xsl:variable name="totalTime" />
- <xsl:variable name="totalPay">
- <total_pay>
- <xsl:for-each select="//学期">
- <item>
  <xsl:value-of select="//课时费 * //学时" />
  </item>
  </xsl:for-each>
  </total_pay>
  </xsl:variable>
  <xsl:variable name="totalBook" />
  <xsl:variable name="totalTest" />
  <xsl:variable name="totalCertifid" />
- <xsl:variable name="totalAll">
- <total_all>
- <xsl:for-each select="//学期">
- <item>
  <xsl:value-of select="//课时费 * //学时 + //教材费 + //考试费 + //证书费" />
  </item>
  </xsl:for-each>
  </total_all>
  </xsl:variable>
- <xsl:for-each select="//学期">
- <tr bgcolor="#ffffff">
- <td align="center">
  <xsl:value-of select="@名称" />
  </td>
- <td align="center">
  <xsl:value-of select="current()//课时费" />
  元/学时
  </td>
- <td align="center">
  <xsl:value-of select="current()//学时" />
  </td>
- <td align="center">
  <xsl:value-of select="current()//课时费 * current()//学时" />
 
  </td>
- <td align="center">
  <xsl:value-of select="current()//教材费" />
 
  </td>
- <td align="center">
  <xsl:value-of select="current()//考试费" />
 
  </td>
- <td align="center">
  <xsl:value-of select="current()//证书费" />
 
  </td>
- <td align="center">
  <xsl:value-of select="current()//课时费 * current()//学时 + current()//教材费 + current()//考试费 + current()//证书费" />
 
  </td>
  </tr>
  </xsl:for-each>
- <tr>
  <td align="center" colspan="2">合计</td>
- <td align="center" style="color:red">
  <xsl:value-of select="sum(//学时)" />
  </td>
- <td align="center" style="color:red">
  <xsl:value-of select="sum(msxsl:node-set($totalPay)/total_pay/item)" />
 
  </td>
- <td align="center" style="color:red">
  <xsl:value-of select="sum(//教材费)" />
 
  </td>
- <td align="center" style="color:red">
  <xsl:value-of select="sum(//考试费)" />
 
  </td>
- <td align="center" style="color:red">
  <xsl:value-of select="sum(//证书费)" />
 
  </td>
- <td align="center" style="color:red">
  <xsl:value-of select="sum(msxsl:node-set($totalAll)/total_all/item)" />
 
  </td>
  </tr>
  </table>
  </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>
 
//学费标准样式表.xml
 <?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="学费标准样式表.xsl"?>
<学费>
- <产品 名称="ACCP" 版本="V5.0">
- <学期 名称="S1">
  <课时费>33</课时费>
  <学时>214</学时>
  <教材费>500</教材费>
  <考试费>300</考试费>
  <证书费>70</证书费>
  </学期>
- <学期 名称="S2">
  <课时费>35</课时费>
  <学时>268</学时>
  <教材费>550</教材费>
  <考试费>300</考试费>
  <证书费>80</证书费>
  </学期>
- <学期 名称="Y2">
  <课时费>37</课时费>
  <学时>318</学时>
  <教材费>600</教材费>
  <考试费>400</考试费>
  <证书费>150</证书费>
  </学期>
  </产品>
  </学费>
 
//下面是测试的html page, 可直接用IE打开 学费标准样式表.xml 也一样,因为我们在xml中定义了 "<?xml-stylesheet type="text/xsl" href="学费标准样式表.xsl"?>"
 
<html>

<head>
</head>

<script language="javascript">
    // Load XML
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load("学费标准样式表.xml")

    // Load the XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load("学费标准样式表.xsl")
    document.write(xml.transformNode(xsl))
</script>

</html>

 <!--
文中的关键要去理解一下下面的这段
定义一个变量:
- <xsl:variable name="totalAll">
- <total_all>
- <xsl:for-each select="//学期">
- <item>
  <xsl:value-of select="//课时费 * //学时 + //教材费 + //考试费 + //证书费" />
  </item>
  </xsl:for-each>
  </total_all>
  </xsl:variable>
如何使用变量:
<xsl:value-of select="sum(msxsl:node-set($totalAll)/total_all/item)" />
msxsl的定义在前面:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
-->
posted @ 2009-02-17 15:19  javak  阅读(604)  评论(2编辑  收藏  举报