⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsl.htm

📁 这是一本关于XML的学习的书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
        ]]&gt;&lt;/xsl:comment&gt;</font></span></p>
      <p><span class="normal105"><font face="宋体" lang="ZH-CN">让我们给出另一个较为复杂的例子,并据此进一步学习XSL:</font></span></p>
      <p><span class="normal105">Complex.xsl:</span></p>
      <p align="JUSTIFY"></p>
      <p><span class="normal105"><font face="宋体" lang="ZH-CN">&lt;?xml version="1.0"?&gt;<br>
        &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"&gt;<br>
        &lt;xsl:template match="/"&gt;<br>
        &lt;HTML&gt;<br>
        &lt;HEAD&gt;<br>
        &lt;STYLE&gt;<br>
        BODY {margin:0}<br>
        .bg {font:8pt Verdana; background-color:purple; color:white}<br>
        H1 {font:bold 14pt Verdana; width:100%; margin-top:1em}<br>
        .row {font:8pt Verdana; border-bottom:1px solid #CC88CC}<br>
        .header {font:bold 9pt Verdana; cursor:hand; padding:2px; border:2px outset 
        gray}<br>
        .up {background-color:#DDFFDD;}<br>
        .down {background-color:#FFDDDD;}<br>
        &lt;/STYLE&gt;<br>
        &lt;/HEAD&gt;<br>
        <br>
        &lt;SCRIPT&gt;<br>
        &lt;xsl:comment&gt;&lt;![CDATA[<br>
        function sort(field)<br>
        {<br>
        sortField.value = field;<br>
        listing.innerHTML = source.documentElement.transformNode(stylesheet);<br>
        }<br>
        ]]&gt;&lt;/xsl:comment&gt;<br>
        &lt;/SCRIPT&gt;</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;SCRIPT 
        for="window" event="onload"&gt;<br>
        &lt;xsl:comment&gt;&lt;![CDATA[<br>
        stylesheet = document.XSLDocument;<br>
        source = document.XMLDocument;<br>
        sortField = document.XSLDocument.selectSingleNode("//@order-by");<br>
        ]]&gt;&lt;/xsl:comment&gt;<br>
        &lt;/SCRIPT&gt;</font></span></p>
      <p align="JUSTIFY"> </p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;BODY&gt;<br>
        &lt;TABLE width="100%" cellspacing="0"&gt;<br>
        &lt;TR&gt;<br>
        &lt;TD class="bg"/&gt;<br>
        &lt;TD class="bg"&gt;<br>
        &lt;H1&gt; &lt;xsl:value-of select="portfolio/description"/&gt; for &lt;xsl:apply-templates 
        select="portfolio/date"/&gt;&lt;/H1&gt;<br>
        &lt;DIV&gt;Average change: &lt;B&gt;&lt;xsl:eval&gt;averageChange(this)&lt;/xsl:eval&gt;&lt;/B&gt;&lt;/DIV&gt;<br>
        &lt;DIV&gt;Total volume: &lt;B&gt;&lt;xsl:eval&gt;totalVolume(this)&lt;/xsl:eval&gt;&lt;/B&gt;&lt;/DIV&gt;<br>
        &lt;/TD&gt;<br>
        &lt;/TR&gt;<br>
        &lt;TR&gt;<br>
        &lt;TD class="bg" width="120" valign="top"&gt;<br>
        &lt;P&gt;Click on the column headers to sort by that field.&lt;/P&gt;<br>
        &lt;P&gt;Demonstration of custom formatting of data typed values and local 
        reapplication of the stylesheet.&lt;/P&gt;<br>
        &lt;P&gt;Stocks losing more than 5% indicated in red. Stocks gaining value 
        indicated in green.&lt;/P&gt;<br>
        &lt;/TD&gt;<br>
        &lt;TD class="bg" valign="top"&gt;<br>
        &lt;DIV id="listing"&gt;&lt;xsl:apply-templates match="portfolio"/&gt;&lt;/DIV&gt;<br>
        &lt;/TD&gt;<br>
        &lt;/TR&gt;<br>
        &lt;/TABLE&gt; <br>
        </font> <font face="宋体" lang="ZH-CN">&lt;/BODY&gt;<br>
        &lt;/HTML&gt;<br>
        &lt;/xsl:template&gt;</font></span></p>
      <p align="JUSTIFY"> </p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;xsl:template 
        match="portfolio"&gt;<br>
        &lt;TABLE STYLE="background-color:white"&gt;<br>
        <br>
        &lt;THEAD&gt;<br>
        &lt;TD width="200"&gt;&lt;DIV class="header" onClick="sort('name')"&gt;Company&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD width="80"&gt;&lt;DIV class="header" onClick="sort('symbol')"&gt;Symbol&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD width="80"&gt;&lt;DIV class="header" onClick="sort('price')"&gt;Price&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD width="80"&gt;&lt;DIV class="header" onClick="sort('change')"&gt;Change&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD width="80"&gt;&lt;DIV class="header" onClick="sort('percent')"&gt;%Change&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD width="80"&gt;&lt;DIV class="header" onClick="sort('volume')"&gt;Volume&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;/THEAD&gt;</font></span></p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;xsl:for-each 
        select="stock" order-by="symbol"&gt;<br>
        &lt;TR&gt;<br>
        &lt;xsl:for-each select="change"&gt;<br>
        &lt;xsl:if expr="this.nodeTypedValue &amp;gt; 0"&gt;<br>
        &lt;xsl:attribute name="class"&gt;up&lt;/xsl:attribute&gt;<br>
        &lt;/xsl:if&gt;<br>
        &lt;/xsl:for-each&gt;<br>
        <br>
        &lt;xsl:for-each select="percent"&gt;<br>
        &lt;xsl:if expr="this.nodeTypedValue &amp;lt; -5"&gt;<br>
        &lt;xsl:attribute name="class"&gt;down&lt;/xsl:attribute&gt;<br>
        &lt;/xsl:if&gt;<br>
        &lt;/xsl:for-each&gt;<br>
        &lt;TD&gt;&lt;DIV class="row"&gt;&lt;xsl:value-of select="name"/&gt;&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD&gt;&lt;DIV class="row"&gt;&lt;xsl:value-of select="symbol"/&gt;&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD&gt;&lt;DIV class="row" STYLE="text-align:right"&gt;&lt;xsl:apply-templates 
        select="price"/&gt;&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD&gt;&lt;DIV class="row" STYLE="text-align:right"&gt;&lt;xsl:apply-templates 
        select="change"/&gt;&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD&gt;&lt;DIV class="row" STYLE="text-align:right"&gt;&lt;xsl:apply-templates 
        select="percent"/&gt;&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;TD&gt;&lt;DIV class="row" STYLE="text-align:right"&gt;&lt;xsl:apply-templates 
        select="volume"/&gt;&lt;/DIV&gt;&lt;/TD&gt;<br>
        &lt;/TR&gt;<br>
        &lt;/xsl:for-each&gt;<br>
        <br>
        &lt;/TABLE&gt;</font></span></p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;/xsl:template&gt;</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;xsl:template 
        match="date"&gt;<br>
        &lt;xsl:eval&gt;formatDate(this.nodeTypedValue, "MMMM dd',' yyyy")&lt;/xsl:eval&gt; 
        at &lt;xsl:eval&gt;formatTime(this.nodeTypedValue, "hh:mm tt")&lt;/xsl:eval&gt;<br>
        &lt;/xsl:template&gt;</font></span></p>
      <p align="JUSTIFY"> </p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;xsl:template 
        match="price | change"&gt;<br>
        &lt;xsl:eval&gt;formatNumber(this.nodeTypedValue, "$0.00")&lt;/xsl:eval&gt;<br>
        &lt;/xsl:template&gt;<br>
        &lt;xsl:template match="percent"&gt;<br>
        &lt;xsl:if expr="this.nodeTypedValue &amp;gt; 0"&gt;+&lt;/xsl:if&gt;<br>
        &lt;xsl:eval&gt;formatNumber(this.nodeTypedValue, "0.0")&lt;/xsl:eval&gt;%<br>
        &lt;/xsl:template&gt;</font></span></p>
      <p align="JUSTIFY"> </p>
      <p align="JUSTIFY"> <span class="normal105"><font face="宋体" lang="ZH-CN">&lt;xsl:template 
        match="volume"&gt;<br>
        &lt;xsl:eval&gt;formatNumber(this.nodeTypedValue * 1000000, "#,###,###")&lt;/xsl:eval&gt;<br>
        &lt;/xsl:template&gt;<br>
        <br>
        <br>
        &lt;xsl:script&gt;&lt;![CDATA[<br>
        function totalVolume(node)<br>
        {<br>
        total = 0;<br>
        volumes = node.selectNodes("/portfolio/stock/volume");<br>
        for (v = volumes.nextNode(); v; v = volumes.nextNode())<br>
        total += v.nodeTypedValue;<br>
        return formatNumber(total, "#") + " million shares";<br>
        }</font></span></p>
      <p align="JUSTIFY"> </p>
      <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN"> 
        function averageChange(node)<br>
        {<br>
        total = 0;<br>
        percents = node.selectNodes("/portfolio/stock/percent");<br>
        count = percents.length;<br>
        for (p = percents.nextNode(); p; p = percents.nextNode())<br>
        total += p.nodeTypedValue;<br>
        return formatNumber(total/count, "#.0") + "%";<br>
        }</font></span></p>
      <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN"> 
        ]]&gt;&lt;/xsl:script&gt;</font></span></p>
      <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">&lt;/xsl:stylesheet&gt;</font></span></p>
      <p align="JUSTIFY"><span class="normal105">如果你要显示中文,你只要在XML和XSL文件的的开头分别加上:&lt;?xml 
        version=&quot;1.0&quot; encoding=&quot;gb2312&quot;?&gt;即可.试试看!</span></p>
      <hr size="1">
      <p align="center"><font face="宋体" lang="ZH-CN">[<a href="#top">返回标题</a>][<a href="../application.htm" tppabs="http://www.xml.org.cn:8188/application/application.htm" target="_parent">返回应用</a>][<a href="../../default.asp.htm" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首页</a>][<a href="mailto:xmlteam@egroups.com">欢迎投稿</a>]</font></p>
      <p align="center">最后更新:1999年8月5日<br>
        <font color="#FF0033" size="-1">本站点所刊文章版权,均归本站点所有。署名作者拥有其著作权。<br>
        未经</font><font color="#FF0033"><a href="mailto:xmlteam@egroups.com"><font color="#6666FF" size="-1">允许</font></a></font><font color="#FF0033" size="-1">,不得随意转载,违者必究!!</font> 
      </p>
    </td>
  </tr>
</table>
<h2 ALIGN="CENTER">&nbsp;</h2>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3> 
<P ALIGN="JUSTIFY">&nbsp;</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT> 
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -