日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

XSL基礎教程第三章_Xml教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:XSL-FO 初學者教程:XSL-FO 輸出和流
XSL-FO在<fo:flow>元素內部定義輸出。 XSL-FO 頁面(Page)、流(Flow)以及塊(Block) 內容“塊”會“流”入“頁面”中,然后輸出到媒介。 XSL-FO輸出通

客戶端XSL

如果瀏覽器支持XML,,就可以用XSL在瀏覽器中將文檔轉換成HTML。

一個JavaScript的解決方法

在前文中,我們解釋了如何用XSL將一個文檔從XML轉換成HTML。竅門就是向XML文件中增加一個XSL樣式表,然后讓瀏覽器來進行轉換。即使這種方法能奏效,在XML文件中包含一個樣式表引用也并非令人滿意的方法,并且在不支持XSL的瀏覽器上這種方法還不能奏效。

一個更通用的方法應該是用一個JavaScript來進行從XML到HTML的轉換。使用一個JavaScript,就更有以下可能性:

允許JavaScript進行瀏覽器細節(jié)測試;

根據瀏覽器和用戶需求使用不同的樣式表。

這就是XSL的美妙之處。XSL設計目的之一就是使數據從一個格式轉換成另一個格式成為可能,從而支持不同的瀏覽器和不同的用戶需求。

客戶端XSL轉換將成為未來瀏覽器工作任務的一個主要部分,我們還將看到專業(yè)化瀏覽器市場的成長,比如Braille、 發(fā)聲網絡、網絡打印機、手持PC、移動電話等。

XML文件和XSL文件

現(xiàn)在重新來看看前面章節(jié)中的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 或更高版本,請點擊這里查看結果。

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

服務器端XSL

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

一個跨瀏覽器的解決方法

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

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

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

XML文件和XSL文件

現(xiàn)在來重新看看前面章節(jié)中的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文檔的語法在前面章節(jié)中已經解釋過了,因此這里不再做解釋。但是要確保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))
  
    %>

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

分享:XML入門教程:現(xiàn)實生活中的XML
一個現(xiàn)實生活中的例子,向您展示XML如何攜帶數據。 實例:XML 新聞 XMLNews是用于交換新聞和其他信息的規(guī)范。 對新聞的供求雙方來說,通過使用這種標準,可以使各種類型的新聞信息通過不

來源:模板無憂//所屬分類:Xml教程/更新時間:2008-08-22
相關Xml教程