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

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

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

    XSLT學習筆記

    一、XSL:擴展樣式語言,主要包含:XSLT(用于轉化XML的語言),XPath(在XML歷練導航的語言),XSL-FO(將XML文檔格式化的語言)

    二、語言發展起因:XML語言是用來表示數據的自解釋性語言,它的標簽是隨意定義的,不像HTML那樣,標簽具有特定的含義,因此,是無法在瀏覽器里面顯示XML的,如果需要,則必須使用另外一種語言將XML轉化成類似HTML語言的形式,這樣就誕生了XSLT,也就是XSL Transform語言,它定義了怎么去顯示一個XML文件。

    三、語言語法簡介:
    1.<xsl:template>元素用于構建模版,
    match 屬性用于關聯 XML 元素和模板。match 屬性也可用來為整個文檔定義模板。match 屬性的值是 XPath 表達式(舉例,match="/" 定義整個文檔)。
    當XSLT處理器使用XSL式樣表轉換XML文檔時,處理器將遍歷XML文檔的樹狀結構,一次瀏覽每個節點,并將瀏覽的節點與式樣表中的每個模板規則的模式進行比較。如果處理器找到了與模板規則的模式相匹配的節點,處理器就會輸出此規則的模板。模板通常包含了一些元素指令、新的數據,或者從源XML文檔中復制的數據。詳細解釋可見:http://lavasoft.blog.51cto.com/62575/60408

    2.<xsl:apply-template>
    首先展示一個例子:
    <xsl:template match = "chapter/title">
    <h1>
    <xsl:apply-templates/>
    </h1>
    </xsl:template>

    <xsl:apply-template>是說對匹配的Node或者Element應用XSLT的內置模版(
    內置模板就是當XSLT轉換器找不到用戶為元素定義的模板時,所使用的缺省模板。
    詳細解釋可見:
    http://blog.sina.com.cn/s/blog_5920510a0100p0rd.html

    四、JavaScript解決方案
    我們是通過以下途徑完成這個工作的:向 XML 文件添加 XSL 樣式表,并通過瀏覽器完成轉換。

    即使這種方法的效果很好,在 XML 文件中包含樣式表引用也不總是令人滿意的(例如,在無法識別XSLT的瀏覽器這種方法就無法奏效)。

    更通用的方法是使用 JavaScript 來完成轉換。

    通過使用 JavaScript,我們可以:

    • 進行瀏覽器確認測試
    • 根據瀏覽器和使用者的需求來使用不同的樣式表


    以下是代碼范例:(來自:http://www.w3school.com.cn/xsl/xsl_client.asp

    <html>
    <body>

    <script type="text/javascript">

    // Load XML 
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async 
    = false
    xml.load(
    "cdcatalog.xml")

    // Load XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async 
    = false
    xsl.load(
    "cdcatalog.xsl")

    // Transform
    document.write(xml.transformNode(xsl))

    </script>

    </body>
    </html>


    五、何時轉換?
    1.既可以在服務器端轉化成可以顯示的文件:
    JavaScript 解決方案無法工作于沒有 XML 解析器的瀏覽器。為了讓 XML 數據適用于任何類型的瀏覽器,我們必須在服務器上對 XML 文檔進行轉換,然后將其作為 XHMTL 發送到瀏覽器。
    這是 XSLT 的另一個優點。XSLT 的設計目標之一是使數據在服務器上從一種格式轉換到另一種格式成為可能,并向所有類型的瀏覽器返回可讀的數據。

    范例:
    <%
    'Load XML
    set xml 
    = Server.CreateObject("Microsoft.XMLDOM")
    xml.async 
    = false
    xml.load(Server.MapPath(
    "cdcatalog.xml"))

    'Load XSL
    set xsl 
    = Server.CreateObject("Microsoft.XMLDOM")
    xsl.async 
    = false
    xsl.load(Server.MapPath(
    "cdcatalog.xsl"))

    'Transform file
    Response.Write(xml.transformNode(xsl))
    %>

    2.也可以在客戶端轉化成可以顯示的文件





    posted on 2011-10-25 14:41 灰色客棧 閱讀(67) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 午夜免费福利在线观看| 亚洲免费视频网址| 免费日韩在线视频| 亚洲成在人线aⅴ免费毛片| 免费A级毛片无码免费视| 久久久久久亚洲精品影院| 免费不卡视频一卡二卡| 亚洲婷婷天堂在线综合| 国产91色综合久久免费| 亚洲不卡中文字幕| 一个人看www在线高清免费看 | 国产桃色在线成免费视频| 亚洲狠狠狠一区二区三区| 亚洲国产精品免费观看| 亚洲熟妇AV一区二区三区宅男| 在线不卡免费视频| 免费看美女午夜大片| 国产亚洲成人久久| 午夜理伦剧场免费| 亚洲乱码在线视频| 国产免费看插插插视频| 一个人免费观看www视频| 亚洲AV无码不卡在线播放| 69视频免费观看l| 亚洲精品无码专区久久| 亚洲人成人网站在线观看| 久久久精品免费国产四虎| 亚洲日本在线观看网址| 永久免费bbbbbb视频| 日本在线观看免费高清| 亚洲va中文字幕无码久久不卡| 日本片免费观看一区二区| 国产成人人综合亚洲欧美丁香花| 精品国产人成亚洲区| 免费A级毛片av无码| 亚洲 日韩 色 图网站| 中文字幕第一页亚洲| 1000部啪啪毛片免费看| 国产精品亚洲综合| 337p日本欧洲亚洲大胆色噜噜| 日韩免费一级毛片|