Vincent.Chan‘s Blog

          常用鏈接

          統計

          積分與排名

          網站

          最新評論

          XSL基礎教程(三)

          級別: 初級

          青蘋果工作室編譯,轉自 ccidnet 網站

          Error: Please enter a value for the author element's jobtitle attribute, or the company-name element, or both.


          2001 年 3 月 01 日

          XSL(eXtensible Style sheet Language),即可擴展樣式表語言,是XML的親密伙伴。要學習好XML,不能不掌握XSL。本文就向你全面講述XSL的一切一切:

          XSL索引:將XML文檔轉換成HTML之前,如何用XML解析器來對XML文檔進行索引。

          XSL索引
          XSL可以用來對一個XML文檔進行索引。

          將索引信息放在哪里
          現在重新看看在以前許多章節中都曾看到過的 XML文檔:


          <?xml version="1.0"?>
          <CATALOG>
          <CD>
          <TITLE>Empire Burlesque</TITLE>
          <ARTIST>Bob Dylan</ARTIST>
          <COUNTRY>USA</COUNTRY>
          <COMPANY>Columbia</COMPANY>
          <PRICE>10.90</PRICE>
          <YEAR>1985</YEAR>
          </CD>
          .
          .
          .

          要想將這個XML文件作為一個普通的HTML文件輸出,并且同時對它進行索引,只需要在XSL文件中增加一個order-by 屬性,如下:
          <xsl:for-each select="CATALOG/CD" order-by="+ ARTIST">

          order-by屬性使用加號(+)或減號(-)來定義是使用升序還是降序,再用一個元素名稱來定義排序的元素。

          現在來看看經過輕微調整的XSL樣式表(或在IE5中打開它):


          <?xml version='1.0'?>
          <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
          <xsl:template match="/">
          <html>
          <body>
          <table border="2" bgcolor="yellow">
          <tr>
          <th>Title</th>
          <th>Artist</th>
          </tr>
          <xsl:for-each select="CATALOG/CD"
          order-by="+ ARTIST">
          <tr>
          <td><xsl:value-of select="TITLE"/></td>
          <td><xsl:value-of select="ARTIST"/></td>
          </tr>
          </xsl:for-each>
          </table>
          </body>
          </html>
          </xsl:template>
          </xsl:stylesheet>

          在瀏覽器中轉換
          以下是在瀏覽器中將XML文件轉換成HTML所需要的簡單代碼:


          <html>
          <body>
          <script language="javascript">
          // Load XML
          var xml = new ActiveXObject("Microsoft.XMLDOM")
          xml.async = false
          xml.load("cd_catalog.xml")
          // Load the XSL
          var xsl = new ActiveXObject("Microsoft.XMLDOM")
          xsl.async = false
          xsl.load("cd_catalog_sort.xsl")
          // Transform
          document.write(xml.transformNode(xsl))
          </script>
          </body>
          </html>

          如果使用的是Internet Explorer 5.0 或更高版本,請點擊這里 查看結果



          回頁首


          XSL過濾器:將XML文檔轉換成HTML之前,如何用XML解析器過濾XML文檔。

          XSL過濾器查詢
          XSL可以用來過濾一個 XML 文件。

          在哪里放置過濾器信息
          現在重新看看你以前已經看過多次的XML文檔:


          <?xml version="1.0"?>
          <CATALOG>
          <CD>
          <TITLE>Empire Burlesque</TITLE>
          <ARTIST>Bob Dylan</ARTIST>
          <COUNTRY>USA</COUNTRY>
          <COMPANY>Columbia</COMPANY>
          <PRICE>10.90</PRICE>
          <YEAR>1985</YEAR>
          </CD>
          .
          .
          .

          要過濾XML文件,只需要為XSL文件中的for-each元素的選擇屬性增加一個過濾器,如下:
          <xsl:for-each select="CATALOG/CD[ARTIST='Bob Dylan']">

          合法的過濾器操作符是:


          = 等于
          != 不等于
          < 小于
          > 大于

          現在看看經過輕微調整的XSL樣式表:


          <?xml version='1.0'?>
          <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
          <xsl:template match="/">
          <html>
          <body>
          <table border="2" bgcolor="yellow">
          <tr>
          <th>Title</th>
          <th>Artist</th>
          </tr>
          <xsl:for-each select="CATALOG/CD[ARTIST='Bob Dylan']">
          <tr>
          <td><xsl:value-of select="TITLE"/></td>
          <td><xsl:value-of select="ARTIST"/></td>
          </tr>
          </xsl:for-each>
          </ta





          回頁首






          回頁首


          關于作者


          青蘋果工作室編譯,轉自 ccidnet 網站 has authored this article

          posted on 2006-03-21 23:35 Vincent.Chen 閱讀(195) 評論(0)  編輯  收藏 所屬分類: XML

          主站蜘蛛池模板: 滨州市| 勃利县| 靖边县| 东海县| 鹤岗市| 阳朔县| 阿巴嘎旗| 枣强县| 牡丹江市| 措勤县| 靖远县| 二连浩特市| 荣昌县| 威信县| 桃源县| 利津县| 大安市| 惠安县| 晋州市| 岫岩| 偃师市| 安远县| 张北县| 怀集县| 集安市| 旺苍县| 静安区| 越西县| 历史| 垦利县| 平塘县| 轮台县| 湛江市| 云南省| 高碑店市| 木兰县| 常州市| 梁山县| 绿春县| 册亨县| 武汉市|