<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 灰色客棧 閱讀(69) 評論(0)  編輯  收藏


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


    網站導航:
     
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91免费国产自产地址入| 亚洲高清免费视频| 国产av无码专区亚洲av桃花庵| 无码人妻久久一区二区三区免费 | 免费精品一区二区三区在线观看 | 免费观看日本污污ww网站一区| 99在线视频免费观看| 春暖花开亚洲性无区一区二区| 久久亚洲国产精品一区二区| 免费中文字幕不卡视频| 男女做羞羞的事视频免费观看无遮挡| sss在线观看免费高清| 亚洲av无码成人精品国产| 亚洲va乱码一区二区三区| 亚洲综合一区二区国产精品| 亚洲男人第一无码aⅴ网站| 国产精品自在自线免费观看 | 亚洲日韩人妻第一页| 又粗又大又猛又爽免费视频| 四虎影院免费视频| 24小时日本在线www免费的| 两个人的视频高清在线观看免费 | 亚洲av色福利天堂| 久久亚洲AV午夜福利精品一区| 亚洲人成人77777网站| 亚洲AV午夜成人片| 亚洲综合一区二区精品导航| 亚洲伦理一区二区| 亚洲AV综合色区无码二区偷拍| 在线亚洲高清揄拍自拍一品区| 亚洲综合色7777情网站777| 亚洲剧情在线观看| 国产男女爽爽爽免费视频| 99久久99这里只有免费的精品| **毛片免费观看久久精品| 成全视频在线观看免费高清动漫视频下载 | 亚洲电影在线免费观看| 97人伦色伦成人免费视频| 亚洲国产中文字幕在线观看| 久久亚洲一区二区| 亚洲爆乳大丰满无码专区|