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解析器在客戶機上將XML文檔轉換成HTML文檔。

          一個JavaScript的解決方法
          在前文中,我們解釋了如何用XSL將一個文檔從XML轉換成HTML。竅門就是向XML文件中增加一個XSL樣式表,然后讓瀏覽器來進行轉換。即使這種方法能奏效,在XML文件中包含一個樣式表引用也并非令人滿意的方法,并且在不支持XSL的瀏覽器上這種方法還不能奏效。
          一個更通用的方法應該是用一個JavaScript來進行從XML到HTML的轉換。使用一個JavaScript,就更有以下可能性:
          • 允許JavaScript進行瀏覽器細節測試;
          • 根據瀏覽器和用戶需求使用不同的樣式表。
          • 這就是XSL的美妙之處。XSL設計目的之一就是使數據從一個格式轉換成另一個格式成為可能,從而支持不同的瀏覽器和不同的用戶需求。
          • 客戶端XSL轉換將成為未來瀏覽器工作任務的一個主要部分,我們還將看到專業化瀏覽器市場的成長,比如Braille、 發聲網絡、網絡打印機、手持PC、移動電話等。

          XML文件和XSL文件
          現在重新來看看前面章節中的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>
          .
          .
          .
          還有附帶的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">
          <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文件沒有對XSL文件的引用,XSL文件也沒有對XML文件的引用。注意:上面的句子說明一個XML文件可以用許多不同的XSL文件進行轉換。
          在瀏覽器中將XML轉換到HTML
          以下是在客戶機上將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.xsl")
          // Transform
          document.write(xml.transformNode(xsl))
          </script>
          </body>
          </html>


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

          代碼的第一塊創建了Microsoft XML 解析器(XMLDOM)的一個例示,并將XML文檔加載到內存中。代碼的第二塊創建解析器的另一個例示,并將XSL文檔加載到內存中。代碼的最后一行用XSL文檔轉換XML文檔,將結果寫入HTML 文檔中。




          回頁首


          服務器端XSL:如何用XML解析器在服務器上將XML文檔轉換成HTML文檔。

          服務器端XSL
          由于不是所有的瀏覽器都支持XML和XSL,因此就有了一個在服務器上將XML轉換成HTML的方法。

          一個跨瀏覽器的解決方法
          在前面的章節中,我們解釋了如何用XSL在瀏覽器中將XML文檔轉換成HTML,竅門就是讓JavaScript使用一個XML解析器來進行轉換。但是當 瀏覽器不支持XML解析器時,這種方法是不奏效的。要使XML數據對所有瀏覽器都可用,我們就必須在服務器上轉換XML文檔,并將它作為純HTML發送到 瀏覽器。

          這是XSL的另一個美妙之處。XSL的設計目的之一是使得在服務器上將數據從一種格式轉換成另一種格式成為可能,并將可讀數據返回到所有未來的瀏覽器中。

          在服務器上進行XSL轉換正在成為未來Internet信息服務器工作任務的一個主要部分,同時我們將看到專用瀏覽器市場的發展,如:Braille、有聲網絡、網絡打印機、手持PC、移動電話等。

          XML文件和XSL文件
          現在來重新看看前面章節中的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>
          .
          .
          .

          如果使用的是Internet Explorer 5.0或更高版本,可以點擊這里查看 XML文件
          再看看伴隨的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">
          <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>

          如果使用的是Internet Explorer 5.0或更高版本,可以點擊這里查看 XSL文件

          以上XSL文檔的語法在前面章節中已經解釋過了,因此這里不再做解釋。但是要確保XML文件沒有對XSL文件的引用,XSL文件也沒有對XML文件的引用。同時請注意:上面的句子表明一個服務器上的XML文件可以用許多不同的XSL文件進行轉換。

          在服務器端將XML轉換成HTML
          以下是在服務器上轉換XML文件所需要的簡單源代碼:


          <%
          'Load the XML
          set xml = Server.CreateObject("Microsoft.XMLDOM")
          xml.async = false
          xml.load(Server.MapPath("cd_catalog.xml"))
          'Load the XSL
          set xsl = Server.CreateObject("Microsoft.XMLDOM")
          xsl.async = false
          xsl.load(Server.MapPath("cd_catalog.xsl"))
          'Transform the file
          Response.Write(xml.transformNode(xsl))
          %>

          代碼的第一塊創建Microsoft XML解析器(XMLDOM)的一個例示,并將XML文件裝載到內存中。代碼的第二塊創建解析器的另一個例示,并將XSL文檔裝載到內存。代碼的最后一行用XSL文檔轉換XML文檔,并將結果返回瀏覽器。



          回頁首


          文章相關部分

          本文轉自




          回頁首






          回頁首


          關于作者


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

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

          主站蜘蛛池模板: 明星| 简阳市| 凉城县| 江津市| 宜兰县| 北碚区| 旅游| 富阳市| 新密市| 嘉兴市| 建宁县| 北碚区| 墨竹工卡县| 内黄县| 理塘县| 宜城市| 诸城市| 黎川县| 濉溪县| 台南市| 大名县| 新竹县| 建湖县| 垣曲县| 康乐县| 怀化市| 大埔区| 株洲县| 阳高县| 伊通| 开封县| 镇安县| 永济市| 习水县| 杂多县| 昌江| 平乡县| 朝阳市| 五寨县| 南通市| 濮阳县|