<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

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品无码人妻无码| 亚洲自偷自拍另类12p| 亚洲欧美日本韩国| 国产免费看JIZZ视频| 亚洲jjzzjjzz在线观看| 亚洲免费一级视频| 国产精品高清视亚洲一区二区 | 一个人免费观看日本www视频| 免费a级毛片18以上观看精品| 天天综合亚洲色在线精品| 免费国产成人午夜电影| 国产精品亚洲一区二区三区在线观看| 国产无遮挡吃胸膜奶免费看视频| 国产精品国产亚洲区艳妇糸列短篇| 国产一级理论免费版| 国产免费久久精品99久久| 亚洲成A人片在线观看WWW| 一区二区三区在线免费看| 亚洲国产成人精品久久| 性做久久久久久免费观看| 亚洲av无码一区二区三区四区| 亚洲精品国产V片在线观看| 中文字幕乱码一区二区免费| 久久亚洲精品无码VA大香大香| 中文字幕av无码无卡免费| 亚洲国产aⅴ成人精品无吗| 亚洲国产黄在线观看| 四虎成人精品永久免费AV| 亚洲乱码在线卡一卡二卡新区| 国产婷婷高清在线观看免费| 国产成年无码久久久免费| 亚洲国产视频网站| 亚洲国产a级视频| 中文字幕免费高清视频| 亚洲精品无码专区在线播放| 亚洲一级特黄大片在线观看| 无码人妻精品中文字幕免费 | 亚洲国产av美女网站| 免费人成年轻人电影| 91成人在线免费观看| 国产亚洲Av综合人人澡精品|