XSLT中文入門(5)_動易Cms教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
模板(template)由兩部分組成:匹配模式(match pattern)和執(zhí)行。簡單的講模式定義XML源文檔中哪一個節(jié)點將被模板處理,執(zhí)行則定義輸出的是什么格式。兩部分對應(yīng)的語法為xsl:template和xsl:apply-templates。
xsl:template的語法是:
<xsl:template
match = pattern
name = qname
priority = number
mode = qname>
<!-- 執(zhí)行內(nèi)容 -->
</xsl:template>
xsl:template的作用是定義一個新模板。屬性中name,priority,和mode用來區(qū)別匹配同一節(jié)點的不同模板。它們不是常用的屬性。match屬性則控制模板的匹配模式(pattern),匹配模式是用來定位XML源文檔中哪一個節(jié)點被模板處理。一個模板匹配一個節(jié)點。我們用一個例子來幫助理解:
假設(shè)我們要處理一個包含章節(jié)和段落文檔。我們用para元素定義段落,用chapter元素定義章節(jié)。我們來看看match屬性可能的值。下面的語句寫法說明模板匹配所有的para元素
<xsl:template match="para">
</xsl:template>
下面的語句寫法說明模板匹配所有的para元素和所有的chapter元素:
<xsl:template match="(chapter|para)">
</xsl:template>
下面的語句寫法說明模板匹配所有的父節(jié)點為chapter元素的para元素:
<xsl:template match="chapter//para">
</xsl:template>
下面的語句寫法說明模板匹配根節(jié)點:
<xsl:template match="/">
</xsl:template>
我們再來看apply-templates語法:
<xsl:apply-templates
select = node set-expression
mode = qname>
</xsl:apply-templates>
xsl:apply-templates用來執(zhí)行那一個節(jié)點被模板具體處理。你可以將它理解為程序中調(diào)用子函數(shù)。select屬性用來定義確切的節(jié)點名稱。xsl:apply-templates總是包含在xsl:template元素中,象這樣:
<xsl:template match="/">
<xsl:apply-templates select="para"/>
</xsl:template>
這段代碼說明摸板匹配整個文檔(根節(jié)點),具體執(zhí)行時處理根節(jié)點下所有para元素。
<xsl:template match="para">
<p><xsl:apply-templates/></p>
</xsl:template>
而這一段代碼則表示摸板匹配para節(jié)點,所有para下的子元素都將被處理。
3.2 xsl:value-of
XSL:value-of用來將源文檔中元素的文本值寫到輸出文檔中。例如:
有一個個人資料的XML文檔:
<?xml version="1.0" encoding="iso-8859-1"?>
<PERSON>
<name>ajie</name>
<age>28</age>
</PERSON>
我假如想在輸出文檔中顯示上面這個XML源文檔中的name元素的值,可以這樣寫XSLT代碼:
<xsl:template match="PERSON">
<xsl:value-of select="name"/>
</xsl:template>
執(zhí)行后,你會看到"ajie"被單獨顯示出來。其中match="PERSON"定義摸板匹配PERSON節(jié)點,xsl:value-of 語法說明需要輸出一個節(jié)點的值,而select="name"則定義需要被輸出的元素為name�?催@個過程是不是和數(shù)據(jù)庫里查詢一個人的名字很象?當(dāng)然,xsl:value-of查詢還有更多,更復(fù)雜的語法,因為是涉及尋找和定位的功能,我們會放在后面的XPath語法中在仔細講解。
同樣功能的還有xsl:copy-of,用法一樣,就不重復(fù)解釋了。
3.3 xsl:for-each
xsl:for-each語法答應(yīng)你循環(huán)處理被選擇的節(jié)點。例如:有一個含多個個人資料的XML文檔:
<?xml version="1.0" encoding="iso-8859-1"?>
<PEOPLE>
相關(guān)動易Cms教程:
- MAC錯誤的解決方法
- 如何屏蔽動易后臺導(dǎo)航里的某個功能菜單?
- 動易.NET版本留言自動選定欄目方法
- 動易SiteFactoty整合Discuz!NT3.0
- 在任意位置獲取根節(jié)點ID標簽
- 如何開啟SiteWeaver6.8的支持,反對功能
- Windows 2008安裝動易.NET系統(tǒng)之四----動易系統(tǒng)安裝篇
- Windows 2008安裝動易.NET系統(tǒng)之三----數(shù)據(jù)庫篇
- Windows 2008安裝動易.NET系統(tǒng)之二----IIS、目錄環(huán)境配置篇
- 數(shù)據(jù)庫修復(fù),SQL Server 2005內(nèi)部操作不一致的處理
- 如何安裝動易.net程序權(quán)限配置
- 為什么提示對Windows系統(tǒng)文件夾下的Temp目錄沒有訪問權(quán)限?
- 相關(guān)鏈接:
- 教程說明:
動易Cms教程-XSLT中文入門(5)
。