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

          主站蜘蛛池模板: 威海市| 林口县| 延津县| 永宁县| 句容市| 万盛区| 五大连池市| 进贤县| 秦安县| 屯留县| 景德镇市| 方城县| 天全县| 石棉县| 夹江县| 凉城县| 华阴市| 海丰县| 洪湖市| 龙南县| 乐陵市| 怀仁县| 尉犁县| 平度市| 论坛| 新兴县| 安平县| 柳州市| 五峰| 漯河市| 黔南| 苏尼特左旗| 新晃| 鹰潭市| 荔浦县| 兴文县| 大关县| 武功县| 舟山市| 贵溪市| 南城县|