<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent.Chan‘s Blog

    常用鏈接

    統計

    積分與排名

    網站

    最新評論

    XSL基礎教程(一)

    級別: 初級

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

    2001 年 3 月 01 日

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

    XSL介紹:介紹XSL是XML的樣式表語言,XSL是什么以及它能做什么。

    XSL介紹:
      XML的樣式表語言XSL比CCS要復雜得多。
    CSS:HTML的樣式表語言:
      由于HTML使用預先確定的標記,因此這些標記的含義都很好理解:<p>元素定義一段,<h1>元素定義一個標題。瀏覽器知道如何顯示這些元素。
      使用CSS向HTML元素增加顯示格式是一個簡單的過程:很容易告訴瀏覽器用某種特殊字體或顏色來顯示各個元素,瀏覽器也很容易理解。

    XSL:XML的樣式表:
      由于XML不使用預先確定的標記(我們可以根據需要使用任意標記),因此標記的含義并不能被直接理解:<table>可以表示一個HTML表格,也可以表示一件家具。由于XML的特性,瀏覽器不知道如何顯示一個XML文檔。
      為了顯示XML文檔,必須要有一個機制來描述如何顯示文檔。這些機制之一是CSS,但是XSL(可擴展的樣式表語言)是XML的首選樣式表語言,它要比HTML使用的CSS復雜得多。

    XSL:不僅僅是一個樣式表
      XSL包含3部分:
      一個轉換XML文檔的方法;
      一個定義XML部分和模式的方法;
      一個格式化XML文檔的方法。
      如果對此還不能理解,那么可以先將XSL理解成:一種將XML轉換成HTML的語言,一種可以過濾和分類XML數據的語言,一種可以對一個XML文檔 的部分進行尋址的語言,一種可以基于數據值格式化XML數據的語言(如用紅色顯示負數),一種向不同設備輸出XML數據的語言(如屏幕、紙或聲音)。

    XSL是一種WWW標準
      XSL是WWW協會推薦的一種標準。這種語言的前兩部分在1999年11月已經成為W3C推薦標準。2000年,包括XSL格式化部分的完整XSL推薦標準成為W3C的候選標準。




    回頁首


    XSL語言:定義XSL語言的子語言:XSLT、XPath和XSL格式對象。

    XSL語言
      XSL實際上包含三種語言,其中最重要的是XSLT。
    XSL是三種語言的結合體
      上面提到,XSL實際上包含三種語言,具體是:
      XSLT是一種轉換XML的語言;
      XPath是一種定義XML部分或模式的語言;
      XSL格式化對象是一種定義XML顯示方式的語言。
      XSLT是一種用來將XML文檔轉換成其他類型文檔或其它XML文檔的語言。XPath是一種對XML文檔的部分進行尋址的語言。設計XPath是要讓XSLT使用的。格式化是將一個XSL轉換的結果變成適于讀者或聽眾使用的輸出格式的過程。
      1999年11月16日,XSLT和XPath被作為兩個單獨的W3C推薦標準發布。目前對于XSL格式化對象還沒有單獨的W3C文檔,但是在XSL1.0推薦標準內有一個描述。

    XSLT:XSL轉換
      XSLT是XSL標準中最重要的部分,它用于將一個XML文檔轉換成另一個XML文檔或另一種類型的文檔,也就是將一個XML文檔轉換成瀏覽器所能識別的一種格式。這其中之一就是HTML。通常,XSLT將每個XML元素都轉換成一個HTML元素。
      XSLT還可以向輸出文件中增加全新的元素,或去掉一些元素。它可以重新安排這些元素并對元素進行分類,測試并確定顯示哪些元素等等。
      描述這種轉換過程的一個常用說法是:XSL用XSLT將一個XML來源樹轉換成另一個XML結果樹(或將一個XML源文檔轉換成另一個XML結果文檔)。

    XSL如何工作
      在轉換的過程中,XSLT用XPath來定義源文檔中與一個或多個預先確定的模板相匹配的部分。當找到了一個匹配時,XSLT就將源文檔中的匹配部分轉換成結果文檔;而源文檔中不與任何一個模板匹配的部分最終在結果中保持不變。

    本文集中介紹XSLT和XPath
      本文的大部分章節都集中在XSLT和XPath上。我們將用XSLT來定義XML轉換,用XPath來為轉換定義匹配模式。即使XSL包含了3個不同名稱的不同部分,我們仍將使用XSL的通用術語。




    回頁首


    XSL瀏覽器:介紹XSL的瀏覽器支持以及為什么用Internet Explorer 5.0來示范XSL。

    XSL 瀏覽器
      目前支持XSL的瀏覽器很少,我們將用Internet Explorer 5.0來演示XSL。
    Internet Explorer的XML解析器
      為了用XSL來處理一個XML文檔,你需要一個帶有XSL引擎的XML解析器。目前,Internet Explorer 5.0是符合這一條件的唯一瀏覽器。所以,本文舉例中的代碼只在Internet Explorer 5.0或更高版本中工作。

    Internet Explorer的XSL引擎
      Internet Explorer 5.0中的XSL并不是100%的與最新發布的W3C XSL標準相吻合。在XSL標準完全固定下來之前,Internet Explorer 5就已經發布了,并且當時的XSL標準還是一個工作草稿。但是Microsoft已經承諾在下一個版本中解決這個問題。
      本文中的例子與正式的W3C XSL推薦中的例子只有很小的不同,這些例子很適用于XSL的學習。
      例子中唯一可見的區別就是XSL樣式表聲明:
      這是W3C XSL推薦中的標準方式:<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      這是Internet Explorer的方式(來自XSL工作草稿):<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

    Internet Explorer MSXML
      MSXML 2.0是IE 5.0所攜帶的XML解析器的名字,MSXML 2.5是Windows 2000所攜帶的解析器的名字,MSXML 3.0是XML解析器的最新版本。MSXML3.0可以從Microsoft下載,未來版本的Internet Explorer和Windows都將攜帶它。
      按照Microsoft的說法,MSXML 3.0與正式的W3C XSL 標準100%兼容:“MSXML 3.0比MSXML 2.5有明顯的進步:安全的服務器HTTP訪問,XSLT和XPath的完整執行,到SAX的改變(用于XML的簡單API),與W3C標準更加一致,以及許多臭蟲的修復。”




    回頁首


    XSL轉換:如何用XSL將XML文檔轉化成HTML文檔,方法是向XML文檔中插入一個XSL樣式表引用。

    XSL–轉換
      本節將舉例學習如何用XSL將XML轉換成HTML。這個舉例的細節將在下一節中解釋。
    從XML文檔開始
      首先從打算轉換成HTML的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樣式表文檔
      現在用轉換模板來創建一個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文件的 顯示結果
    將樣式表連接到XML文檔
      現在向XML文檔中增加一個XSL樣式表引用:

      <?xml version="1.0"?>

      <?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>

      <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兼容的瀏覽器,例如Internet Explorer 5.0或更高版本,那么就能很好地將XML轉換成HTML。點擊這里 查看結果。




    回頁首


    XSL模板:XSL如何使用模板來定義從XML到另一種輸出格式的轉換。

    XSL模板
      XSL用模板來描述如何輸出 XML。

    CSS的使用規則
      如果已經學習過CSS的知識,我們就會知道CSS是用一個或多個規則來定義HTML元素的輸出,用一個選擇器將規則與一個HTML元素聯系起來。比如以下這個CSS規則中的p選擇器說明應該用一種叫做arial的字體來顯示一個<p>元素:
      p { font-family: arial }

    XSL使用模板
      XSL使用一個或多個模板來定義如何輸出XML元素,用一個匹配屬性來將模板與一個XML元素聯系起來,還可以用匹配屬性來為XML文檔的一個完整分支來定義模板。
      請看以下的XSL樣式表,它包含一個模板以輸出前一節中的XML CD目錄:

      <?xml version='1.0'?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="1">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <tr>
    <td>.</td>
    <td>.</td>
    </tr>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>


    由于樣式表本身就是一個XML文檔,因此文檔以一個xml聲明開始:<?xml




    回頁首






    回頁首


    關于作者


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

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

    主站蜘蛛池模板: 久久精品国产亚洲5555| 亚洲?v无码国产在丝袜线观看| 综合亚洲伊人午夜网| 免费看内射乌克兰女| 亚洲男人天堂2020| 国产免费久久精品丫丫| 亚洲国产小视频精品久久久三级| 狼人大香伊蕉国产WWW亚洲| 国产一级一片免费播放| 无码免费又爽又高潮喷水的视频| 亚洲国产一级在线观看 | 无码人妻AV免费一区二区三区| 亚洲人成在线播放网站| a级毛片无码免费真人久久| 国产V亚洲V天堂A无码| 无码人妻一区二区三区免费n鬼沢| 亚洲综合激情九月婷婷| 在线看片免费不卡人成视频| 亚洲国产成人精品无码区二本 | 在线中文高清资源免费观看| 亚洲av日韩专区在线观看| 亚洲AV无码专区日韩| 成全高清在线观看免费| 亚洲一区电影在线观看| 国产真人无遮挡作爱免费视频| 永久免费无码日韩视频| 亚洲最大成人网色| 免费网站看v片在线香蕉| 一级毛片在线免费播放| 亚洲国产第一页www| 日本二区免费一片黄2019| 成人片黄网站色大片免费观看cn| 久久精品国产亚洲av四虎| 91香蕉视频免费| 精选影视免费在线 | 亚洲youjizz| 国产亚洲精品免费视频播放| 在线看片免费不卡人成视频| 成人自慰女黄网站免费大全 | 国产精品亚洲视频| 88xx成人永久免费观看|