青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Michael's Space

Technology changes the world, serves the people.

XSLT淺談

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

XSLT淺談
Michael 2006/09/24

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

一 XSLT本身就是XML文檔

這意味著,編寫XSL文件和編寫一份普通的XML文檔沒什么區(qū)別。它需要有且僅有一個(gè)根結(jié)點(diǎn),它的每個(gè)元素需要前后對(duì)稱,等等。這些XML
文檔的編寫規(guī)范就是XSL的編寫規(guī)范。
XSL文檔的根節(jié)點(diǎn)是<xsl:stylesheet>,一般地,所有XSL文檔的根結(jié)點(diǎn)描述為:
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
注意:用來定義xsl名字空間的URI地址是大小寫相關(guān)的。
以下為本章示例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轉(zhuǎn)化后需要顯示的內(nèi)容由用戶決定

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

上述規(guī)則的含義是:
1)經(jīng)過該XSL轉(zhuǎn)化后的文檔僅包含book元素
2)該book元素可以是任一節(jié)點(diǎn)的book元素

三 XSLT轉(zhuǎn)化的內(nèi)容如何顯示由用戶決定

如何顯示指定節(jié)點(diǎn),也就是如何制定規(guī)則(TEMPLATE)的過程。
規(guī)則的內(nèi)容就是如何定義樣式,它可以是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>

上述規(guī)則的含義是:
1)這條規(guī)則對(duì)XML樹的book節(jié)點(diǎn)進(jìn)行轉(zhuǎn)換
2)轉(zhuǎn)換后的內(nèi)容顯示如下(藍(lán)色3號(hào)大小):
book (id=001)
book (id=002)

XSLT中對(duì)同一個(gè)XML節(jié)點(diǎn)可以定義多條規(guī)則(由mode屬性或者按優(yōu)先級(jí)選擇等),同時(shí),一條規(guī)則可以適用于多個(gè)XML節(jié)點(diǎn)(設(shè)置"match" 屬性時(shí)采用"|"運(yùn)算符連接多個(gè)節(jié)點(diǎn)等)。

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

【完】


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久九九免费| 亚洲国产一区二区三区青草影视| 久久久精品国产免费观看同学| 久久综合九色九九| 欧美一区二区网站| 欧美日韩国产色视频| 久久在线免费观看视频| 国产精品免费福利| 亚洲美女91| 日韩午夜激情av| 久久综合五月| 久久一综合视频| 国产午夜精品一区二区三区视频| 一本色道久久综合| 在线视频精品一| 欧美美女视频| 亚洲精品欧美精品| 亚洲精品久久久久久久久久久久 | 欧美一级网站| 亚洲欧美制服中文字幕| 欧美性开放视频| av成人黄色| 亚洲视频碰碰| 欧美视频一区二区三区| 亚洲精品一区二区三区四区高清| 91久久精品日日躁夜夜躁国产| 久久久久久久91| 久久这里只有精品视频首页| 国内精品模特av私拍在线观看| 亚洲免费一在线| 欧美在线视频免费| 国产在线拍偷自揄拍精品| 欧美在线观看视频一区二区三区| 欧美一区二区大片| 国产一区二区三区观看| 欧美一区二区三区啪啪| 久久影视精品| 亚洲风情亚aⅴ在线发布| 美日韩精品免费| 亚洲国产专区| 99日韩精品| 国产精品久久久久久久第一福利| 亚洲一卡二卡三卡四卡五卡| 欧美呦呦网站| 在线日韩av片| 欧美精选一区| 亚洲一区二区三区三| 久久精品国产亚洲a| 欲香欲色天天天综合和网| 免费在线观看一区二区| 亚洲精品久久久久久久久久久久| 中国亚洲黄色| 国产最新精品精品你懂的| 老鸭窝毛片一区二区三区| 亚洲免费久久| 欧美在线视频观看| 亚洲欧洲午夜| 国产精品久久久久久久久久尿| 久久不射电影网| 亚洲欧洲精品成人久久奇米网| 亚洲欧美视频在线观看| 在线播放不卡| 欧美视频免费在线| 久久精品国产一区二区电影| 亚洲国产电影| 久久久久久香蕉网| 99亚洲一区二区| 国产一区二区精品丝袜| 欧美不卡一区| 欧美亚洲日本国产| 亚洲人成啪啪网站| 久久激情五月激情| 一区二区三区国产| 狠狠色狠狠色综合系列| 欧美日韩一区三区| 久久久综合网站| 亚洲自拍偷拍一区| 亚洲精品久久久久久一区二区| 欧美在线啊v| 在线亚洲一区观看| 亚洲福利久久| 国产欧美日韩免费看aⅴ视频| 欧美成人国产一区二区| 欧美在线啊v| 宅男精品视频| 亚洲精品一区在线观看| 欧美99在线视频观看| 亚洲欧美日韩精品久久| 日韩亚洲成人av在线| 在线观看成人小视频| 国产精品狼人久久影院观看方式| 欧美大片免费| 久久亚洲欧美| 久久精品视频免费观看| 亚洲一区二区三区午夜| 日韩一区二区精品葵司在线| 亚洲电影一级黄| 欧美jjzz| 免费成人在线观看视频| 久久久女女女女999久久| 午夜精品一区二区三区电影天堂| 一本久久综合| 夜夜嗨av一区二区三区免费区| 91久久国产精品91久久性色| 一区二区三区在线视频观看| 国产婷婷精品| 国产一区二区成人久久免费影院| 国产精品人人做人人爽| 国产精品久久久久9999| 国产精品jizz在线观看美国 | 亚洲欧美日韩中文在线制服| av成人免费在线| 一本到12不卡视频在线dvd| 亚洲精品视频一区| 亚洲精品视频在线观看网站| 亚洲精品美女在线观看播放| 亚洲精品美女在线| 一区二区三区欧美日韩| 在线视频亚洲一区| 亚洲午夜三级在线| 亚洲综合99| 久久久久久久999| 欧美不卡视频一区发布| 欧美大片免费久久精品三p| 欧美黑人一区二区三区| 欧美日韩国产专区| 国产精品区一区二区三| 国产日韩一区二区三区| 好看的亚洲午夜视频在线| 亚洲高清不卡在线| 99国产精品99久久久久久| 亚洲视频一区二区在线观看| 午夜精品一区二区三区在线视| 香蕉视频成人在线观看| 久久久青草青青国产亚洲免观| 久久久久久高潮国产精品视| 欧美成人国产| 日韩视频精品在线| 午夜精品在线观看| 狼狼综合久久久久综合网| 欧美激情一区二区三级高清视频| 欧美日韩亚洲在线| 国产一区二区三区久久 | 亚洲欧美成人| 久久婷婷麻豆| 亚洲精品国产日韩| 亚洲欧美日韩一区在线| 噜噜噜躁狠狠躁狠狠精品视频| 欧美精品午夜| 国内精品久久久久影院色| 亚洲啪啪91| 欧美亚洲专区| 亚洲欧洲日本一区二区三区| 午夜精品一区二区三区在线播放| 欧美成人激情视频| 国产亚洲一区二区精品| 亚洲精品偷拍| 久久网站免费| 亚洲视频一区二区在线观看| 久久人91精品久久久久久不卡 | 亚洲国产日韩一级| 欧美一区二区视频免费观看| 亚洲第一福利视频| 久久狠狠婷婷| 国产精品一区二区在线| 9久re热视频在线精品| 久久一本综合频道| 亚洲影院污污.| 欧美精品一区二区三区很污很色的 | 欧美久久久久中文字幕| 欧美日本在线一区| 狠狠干成人综合网| 中日韩在线视频| 性伦欧美刺激片在线观看| 亚洲精品欧美激情| 久久精品色图| 国产精品a级| 亚洲视频观看| 欧美电影打屁股sp| 亚洲在线中文字幕| 国产精品sm| 亚洲精品之草原avav久久| 久久久99国产精品免费| 亚洲欧洲三级| 美国成人毛片| 狠狠久久亚洲欧美| 午夜精品久久久久久久99黑人| 亚洲美女淫视频| 久久久欧美一区二区| 国产视频精品网| 一区二区三区欧美| 亚洲人成小说网站色在线| 久久久999精品视频| 国产精品综合久久久| 亚洲欧美视频在线观看| 亚洲另类一区二区| 欧美不卡一区| 亚洲高清电影| 欧美成va人片在线观看| 久久精品国产在热久久|