• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Michael's Space

            Technology changes the world, serves the people.
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            XSLT淺談

            Posted on 2006-09-24 16:02 奔跑的阿甘 閱讀(643) 評論(0)  編輯 收藏 引用 所屬分類: XML/Data Service

            XSLT淺談
            Michael 2006/09/24

            在"XML淺談"一章,曾提到XML文檔的內容可由XSLT經過轉化處理后呈現給用戶,今天我們著重討論如何做到這點。
            掌握XSLT需要牢記以下三條法則:
            1.XSLT本身就是XML文檔
            2.XSLT轉化后需要顯示的內容由用戶決定
            3.XSLT轉化的內容如何顯示由用戶決定

            一 XSLT本身就是XML文檔

            這意味著,編寫XSL文件和編寫一份普通的XML文檔沒什么區別。它需要有且僅有一個根結點,它的每個元素需要前后對稱,等等。這些XML
            文檔的編寫規范就是XSL的編寫規范。
            XSL文檔的根節點是<xsl:stylesheet>,一般地,所有XSL文檔的根結點描述為:
            <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
            注意:用來定義xsl名字空間的URI地址是大小寫相關的。
            以下為本章示例XML文檔book.xml:
            <?xml version="1.0"?>
            <?xml:stylesheet type="text/xsl" href="book.xsl"?>
            <source>
            <book id="001">
            ???? <price>USD100</price>
            ???? <page>1000</page>
            ???? <book id ="002">partII</book>
            </book>
            </source>

            二 XSLT轉化后需要顯示的內容由用戶決定

            XSLT是面向規則或者面向模板(TEMPLATE-ORIENTED)的語言,它定義一系列的針對源XML文檔節點的規則,用于替換指定的XML文檔節點
            ,最終生成的文檔就是用戶希望看到的內容。
            所以,通過編寫適用于特定節點的規則,這些節點就根據規則定義的格式呈現出來。
            如果用戶不希望看到某部分內容,只要不對這些內容節點制定規則,它們就不被顯示。
            在XSLT中,<xsl:template>元素用于制定一個規則,這條規則可適用于XML樹的某個節點也可適用于多個節點,它可由元素的"match"屬
            性指定。
            這種T-O方法允許用戶自行定義靈活的表單生成各式各樣的效果。
            例如:
            <xsl:template match="/">
            ???? <xsl:apply-templates select="http://book"/>
            </xsl:template>

            上述規則的含義是:
            1)經過該XSL轉化后的文檔僅包含book元素
            2)該book元素可以是任一節點的book元素

            三 XSLT轉化的內容如何顯示由用戶決定

            如何顯示指定節點,也就是如何制定規則(TEMPLATE)的過程。
            規則的內容就是如何定義樣式,它可以是HTML的元素,或者XSLT本身定義的元素(如<xsl:value-of>,<xsl:text>等)。
            例如:
            <xsl:template match="book">
            ???? <h3 style="color:blue">
            ????????? <xsl:value-of select="name()"/>
            ????????? <xsl:text> (id=</xsl:text>
            ????????? <xsl:value-of select="@id"/>
            ????????? <xsl:text>)</xsl:text>
            ???? </h3>
            </xsl:template>

            上述規則的含義是:
            1)這條規則對XML樹的book節點進行轉換
            2)轉換后的內容顯示如下(藍色3號大小):
            book (id=001)
            book (id=002)

            XSLT中對同一個XML節點可以定義多條規則(由mode屬性或者按優先級選擇等),同時,一條規則可以適用于多個XML節點(設置"match" 屬性時采用"|"運算符連接多個節點等)。

            最后,對于XML分析器轉換XML文檔時的過程簡單總結一條:
            分析器從根節點開始遍歷XML文檔,對每個節點,從XSL文檔中尋找規則,若找到則進行節點轉換,否則繼續遍歷,直到整顆樹遍歷完畢為止。在進行父節點轉換時,如果XSL也定義了該父節點的某個子節點的規則,則需要檢查是否有<xsl:apply-templates>元素,若沒有則整個父節點(包括所有子節點)都將被父節點的規則替換,若有,則需要對該元素指定的子節點或者對所有子節點采用各自的規則進行替換。

            【完】

            久久久久久A亚洲欧洲AV冫 | 久久综合狠狠综合久久97色| 思思久久99热免费精品6| 少妇人妻综合久久中文字幕| 色偷偷久久一区二区三区| 精品亚洲综合久久中文字幕| 99久久精品九九亚洲精品| 一本久久免费视频| A级毛片无码久久精品免费| 精品久久久久久亚洲| 久久综合五月丁香久久激情| 精品永久久福利一区二区| 久久久午夜精品福利内容| 免费精品99久久国产综合精品| 久久不见久久见免费视频7| 区久久AAA片69亚洲| 色综合久久综精品| 日韩精品久久久肉伦网站| 久久人搡人人玩人妻精品首页| 精品久久久久久无码专区不卡 | 久久WWW免费人成一看片| 久久久久香蕉视频| 久久91亚洲人成电影网站| 国产三级久久久精品麻豆三级 | 一本色道久久综合狠狠躁| 久久精品国产99国产精品导航| 日韩精品久久久久久| 国产精品99精品久久免费| 亚洲中文字幕无码一久久区| 成人综合久久精品色婷婷| 香蕉久久AⅤ一区二区三区| 久久人人爽人人精品视频| 久久久久国色AV免费看图片| 久久亚洲国产成人影院网站| 人妻少妇精品久久| 欧美国产成人久久精品| 亚洲色大成网站www久久九| 日韩精品久久久肉伦网站| 精品久久久噜噜噜久久久| 久久亚洲国产欧洲精品一| 久久亚洲欧洲国产综合|