XSLT中文入門(mén)(5)_動(dòng)易Cms教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
模板(template)由兩部分組成:匹配模式(match pattern)和執(zhí)行。簡(jiǎn)單的講模式定義XML源文檔中哪一個(gè)節(jié)點(diǎn)將被模板處理,執(zhí)行則定義輸出的是什么格式。兩部分對(duì)應(yīng)的語(yǔ)法為xsl:template和xsl:apply-templates。
xsl:template的語(yǔ)法是:
<xsl:template
match = pattern
name = qname
priority = number
mode = qname>
<!-- 執(zhí)行內(nèi)容 -->
</xsl:template>
xsl:template的作用是定義一個(gè)新模板。屬性中name,priority,和mode用來(lái)區(qū)別匹配同一節(jié)點(diǎn)的不同模板。它們不是常用的屬性。match屬性則控制模板的匹配模式(pattern),匹配模式是用來(lái)定位XML源文檔中哪一個(gè)節(jié)點(diǎn)被模板處理。一個(gè)模板匹配一個(gè)節(jié)點(diǎn)。我們用一個(gè)例子來(lái)幫助理解:
假設(shè)我們要處理一個(gè)包含章節(jié)和段落文檔。我們用para元素定義段落,用chapter元素定義章節(jié)。我們來(lái)看看match屬性可能的值。下面的語(yǔ)句寫(xiě)法說(shuō)明模板匹配所有的para元素
<xsl:template match="para">
</xsl:template>
下面的語(yǔ)句寫(xiě)法說(shuō)明模板匹配所有的para元素和所有的chapter元素:
<xsl:template match="(chapter|para)">
</xsl:template>
下面的語(yǔ)句寫(xiě)法說(shuō)明模板匹配所有的父節(jié)點(diǎn)為chapter元素的para元素:
<xsl:template match="chapter//para">
</xsl:template>
下面的語(yǔ)句寫(xiě)法說(shuō)明模板匹配根節(jié)點(diǎn):
<xsl:template match="/">
</xsl:template>
我們?cè)賮?lái)看apply-templates語(yǔ)法:
<xsl:apply-templates
select = node set-expression
mode = qname>
</xsl:apply-templates>
xsl:apply-templates用來(lái)執(zhí)行那一個(gè)節(jié)點(diǎn)被模板具體處理。你可以將它理解為程序中調(diào)用子函數(shù)。select屬性用來(lái)定義確切的節(jié)點(diǎn)名稱(chēng)。xsl:apply-templates總是包含在xsl:template元素中,象這樣:
<xsl:template match="/">
<xsl:apply-templates select="para"/>
</xsl:template>
這段代碼說(shuō)明摸板匹配整個(gè)文檔(根節(jié)點(diǎn)),具體執(zhí)行時(shí)處理根節(jié)點(diǎn)下所有para元素。
<xsl:template match="para">
<p><xsl:apply-templates/></p>
</xsl:template>
而這一段代碼則表示摸板匹配para節(jié)點(diǎn),所有para下的子元素都將被處理。
3.2 xsl:value-of
XSL:value-of用來(lái)將源文檔中元素的文本值寫(xiě)到輸出文檔中。例如:
有一個(gè)個(gè)人資料的XML文檔:
<?xml version="1.0" encoding="iso-8859-1"?>
<PERSON>
<name>ajie</name>
<age>28</age>
</PERSON>
我假如想在輸出文檔中顯示上面這個(gè)XML源文檔中的name元素的值,可以這樣寫(xiě)XSLT代碼:
<xsl:template match="PERSON">
<xsl:value-of select="name"/>
</xsl:template>
執(zhí)行后,你會(huì)看到"ajie"被單獨(dú)顯示出來(lái)。其中match="PERSON"定義摸板匹配PERSON節(jié)點(diǎn),xsl:value-of 語(yǔ)法說(shuō)明需要輸出一個(gè)節(jié)點(diǎn)的值,而select="name"則定義需要被輸出的元素為name。看這個(gè)過(guò)程是不是和數(shù)據(jù)庫(kù)里查詢(xún)一個(gè)人的名字很象?當(dāng)然,xsl:value-of查詢(xún)還有更多,更復(fù)雜的語(yǔ)法,因?yàn)槭巧婕皩ふ液投ㄎ坏墓δ�,我們�?huì)放在后面的XPath語(yǔ)法中在仔細(xì)講解。
同樣功能的還有xsl:copy-of,用法一樣,就不重復(fù)解釋了。
3.3 xsl:for-each
xsl:for-each語(yǔ)法答應(yīng)你循環(huán)處理被選擇的節(jié)點(diǎn)。例如:有一個(gè)含多個(gè)個(gè)人資料的XML文檔:
<?xml version="1.0" encoding="iso-8859-1"?>
<PEOPLE>
相關(guān)動(dòng)易Cms教程:
- MAC錯(cuò)誤的解決方法
- 如何屏蔽動(dòng)易后臺(tái)導(dǎo)航里的某個(gè)功能菜單?
- 動(dòng)易.NET版本留言自動(dòng)選定欄目方法
- 動(dòng)易SiteFactoty整合Discuz!NT3.0
- 在任意位置獲取根節(jié)點(diǎn)ID標(biāo)簽
- 如何開(kāi)啟SiteWeaver6.8的支持,反對(duì)功能
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之四----動(dòng)易系統(tǒng)安裝篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之三----數(shù)據(jù)庫(kù)篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之二----IIS、目錄環(huán)境配置篇
- 數(shù)據(jù)庫(kù)修復(fù),SQL Server 2005內(nèi)部操作不一致的處理
- 如何安裝動(dòng)易.net程序權(quán)限配置
- 為什么提示對(duì)Windows系統(tǒng)文件夾下的Temp目錄沒(méi)有訪(fǎng)問(wèn)權(quán)限?
動(dòng)易Cms教程教程Rss訂閱Cms教程搜索
動(dòng)易Cms教程推薦
- 怎樣將Powereasy2006SP6版本升級(jí)到SiteFactory2.0版本
- 怎樣解決批量上傳圖片出現(xiàn)錯(cuò)誤的問(wèn)題
- 如何修改{$showpage}分頁(yè)標(biāo)簽顯示的內(nèi)容?
- 因?yàn)椴僮飨到y(tǒng)更新造成驗(yàn)證碼不顯示的問(wèn)題
- 動(dòng)易CMS如何實(shí)現(xiàn)“頂”排行
- 如何制作對(duì)聯(lián)廣告
- 《動(dòng)易網(wǎng)站管理系統(tǒng)》2005版幻燈片效果操作示例
- 解析BizIdea2.5.1標(biāo)準(zhǔn)版到BizIdea2.5.1專(zhuān)業(yè)版升級(jí)步驟
- 利用div實(shí)現(xiàn)自定義圖片文章效果
- 添加正文文章時(shí),系統(tǒng)默認(rèn)文章開(kāi)頭有兩個(gè)字的空格,請(qǐng)問(wèn)如何取消?
- 相關(guān)鏈接:
- 教程說(shuō)明:
動(dòng)易Cms教程-XSLT中文入門(mén)(5)
。