婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > XSLT輕松入門第三章:XSLT的元素語法

XSLT輕松入門第三章:XSLT的元素語法

熱門標簽:南寧網絡外呼系統運營商 高德地圖地圖標注服務中心 微信地圖標注合并了 400電話辦理包年 如何修改多個百度地圖標注 東營電銷 r語言數據可視化地圖標注 隨州外呼調研系統 本地電話機器人

  通過前面兩章的介紹,我們已經對XSLT的基本概念和它的轉換過程有了一些了解。下面我們一起來學習XSLT的具體語法。說到語法總是比較枯燥的,您可以大體上瀏覽一遍,等您真正需要使用XSLT的時候,再仔細研究它們。

3.XSLT的元素語法

3.1 xsl:template和xsl:apply-templates

3.2 xsl:value-of

3.3 xsl:for-each

3.4 xsl:if

3.5 Xxsl:choose, when, otherwise

3.6 xsl:sort

3.1 xsl:template和xsl:apply-templates


 

模板(template)是XSLT中最重要的概念之一。XSLT文件就是由一個一個的模板組成,任何一個XSLT文件至少包含一個模板。模板的概念就象是搭積木;你如果是程序員,也可以將模板看作一個方法,一個類,或者一個模塊。它們可以被拼裝組合,也可以單獨成塊,不同的模板控制不同的輸出格式。

模板(template)由兩部分組成:匹配模式(match pattern)和執行。簡單的講模式定義XML源文檔中哪一個節點將被模板處理,執行則定義輸出的是什么格式。兩部分對應的語法為xsl:template和xsl:apply-templates。


 

xsl:template的語法是:


 

xsl:template

match = pattern

name = qname

priority = number

mode = qname>

!-- 執行內容 -->

/xsl:template>


 

xsl:template的作用是定義一個新模板。屬性中name,priority,和mode用來區別匹配同一節點的不同模板。它們不是常用的屬性。match屬性則控制模板的匹配模式(pattern),匹配模式是用來定位XML源文檔中哪一個節點被模板處理。一個模板匹配一個節點。我們用一個例子來幫助理解:

假設我們要處理一個包含章節和段落文檔。我們用para元素定義段落,用chapter元素定義章節。我們來看看match屬性可能的值。下面的語句寫法說明模板匹配所有的para元素


 

xsl:template match="para">

/xsl:template>


 

下面的語句寫法說明模板匹配所有的para元素和所有的chapter元素:


 

xsl:template match="(chapter|para)">

/xsl:template>


 

下面的語句寫法說明模板匹配所有的父節點為chapter元素的para元素:


 

xsl:template match="chapter//para">

/xsl:template>


 

下面的語句寫法說明模板匹配根節點:


 

xsl:template match="/">

/xsl:template>


 

我們再來看apply-templates語法:


 

xsl:apply-templates

select = node set-expression

mode = qname>

/xsl:apply-templates>


 

xsl:apply-templates用來執行那一個節點被模板具體處理。你可以將它理解為程序中調用子函數。select屬性用來定義確切的節點名稱。xsl:apply-templates總是包含在xsl:template元素中,象這樣:


 

xsl:template match="/">

xsl:apply-templates select="para"/>

/xsl:template>


 

這段代碼說明摸板匹配整個文檔(根節點),具體執行時處理根節點下所有para元素。


 

xsl:template match="para">

p>xsl:apply-templates/>/p>

/xsl:template>


 

而這一段代碼則表示摸板匹配para節點,所有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>


 

執行后,你會看到"ajie"被單獨顯示出來。其中match="PERSON"定義摸板匹配PERSON節點,xsl:value-of
語法說明需要輸出一個節點的值,而select="name"則定義需要被輸出的元素為name。看這個過程是不是和數據庫里查詢一個人的名字很象?當然,xsl:value-of查詢還有更多,更復雜的語法,因為是涉及尋找和定位的功能,我們會放在后面的XPath語法中在仔細講解。

同樣功能的還有xsl:copy-of,用法一樣,就不重復解釋了。

3.3 xsl:for-each


 

xsl:for-each語法允許你循環處理被選擇的節點。例如:有一個含多個個人資料的XML文檔:


 

?xml version="1.0" encoding="iso-8859-1"?>

PEOPLE>

PERSON>

name>ajie/name>

age>28/age>

/PERSON>

PERSON>

name>tom/name>

age>24/age>

/PERSON>

PERSON>

name>miake/name>

age>30/age>

/PERSON>

/PEOPLE>


 

我需要顯示所有人的姓名,則可以將XSLT代碼寫成:


 

xsl:template match="PEOPLE">

xsl:for-each select="child::PERSON">

xsl:value-of select="name"/>

/ xsl:for-each>

/xsl:template>


 

3.4 xsl:if


 

xsl:if類似普通程序語言的if條件語句,允許設定節點滿足某個條件時,被模板處理。xsl:if的語法格式為:


 

xsl:if test=布爾表達式>

template body

/xsl:if>


 

例如:


 

xsl:template match="PEOPLE">

xsl:if test="@name">

p>xsl:value-of select="@name"/>/p>

/xsl:if>

/xsl:template>


 

這段代碼的意思是檢測PEOPLE節點下所有的元素,如果發現有name>元素,則將name>元素的值輸出。其中@符號是統配符,表示節點下所有的元素。

3.5 xsl:choose, xsl:when 和 xsl:otherwise


 

xsl:if語法沒有else的屬性。如果我們要進行多項選擇,那么就要使用xsl:choose / xsl:when / xsl:otherwise系列流程控制語法了。具體的使用請看下面的XSL文件例子:


 

xsl:template match="PEOPLE">

xsl:choose>

xsl:when test="@name = 'ajie'">

B>xsl:value-of select="@name"/>/B>

/xsl:when>

xsl:when test="@name">

I>xsl:value-of select="@name"/>/I>

/xsl:when>

xsl:otherwise>

No name available

/xsl:otherwise>

xsl:choose>

/xsl:template>


 

說明:首先在PEOPLE節點下尋找name>屬性值為ajie的元素,如果找到,將ajie用粗體輸出;如果沒有發現值為ajie的name>元素,則將所有的name>元素的值都用斜體輸出;如果沒有發現任何name>元素,則顯示"No
name available"。


 

3.6 xsl:sort


 

在XSLT中可以對XML源文檔的元素進行重新排序,排序的語法就是xsl:sort。舉例:下面的代碼就是將文檔元素按name排序。


 

xsl:template match="PEOPLE">

xsl:apply-templates select="PERSON">

xsl:sort select="@name"/>

/xsl:apply-templates>

/xsl:template>


 

以上是XSLT的元素的主要語法,還有很多其他的語法,例如:import, include, element, attribute, number, param等等語法,在這里就不一一解釋。我們的目的是讓您對XSLT的語法有基本的概念,理解XSLT作為一種轉換語言的強大功能。

標簽:拉薩 益陽 果洛 德州 西雙版納 宿遷 黃石 寧夏

巨人網絡通訊聲明:本文標題《XSLT輕松入門第三章:XSLT的元素語法》,本文關鍵詞  XSLT,輕松,入門,第三章,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《XSLT輕松入門第三章:XSLT的元素語法》相關的同類信息!
  • 本頁收集關于XSLT輕松入門第三章:XSLT的元素語法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91在线视频播放| 欧美一区二区三区四区在线观看| 欧美电影一区二区| 欧美精品日韩一本| 久久综合久久鬼色中文字| 日韩欧美在线观看一区二区三区| 久久久久久亚洲综合| 最新欧美精品一区二区三区| 日韩精品午夜视频| 国产传媒欧美日韩成人| 色狠狠av一区二区三区| 欧美电影免费观看高清完整版| 国产精品妹子av| 奇米777欧美一区二区| 日韩精品亚洲专区| 三级欧美在线一区| 成人免费视频免费观看| 成人a区在线观看| 日韩三级.com| 亚洲午夜久久久久久久久电影网| 一区二区三区中文字幕| 亚洲精品视频在线看| 亚洲图片欧美视频| 久久精品视频在线免费观看| 国产午夜精品久久久久久免费视 | 欧美精品vⅰdeose4hd| 欧美日韩一区精品| 欧美二区乱c少妇| 精品久久国产97色综合| 精品成人一区二区三区四区| 亚洲高清一区二区三区| 奇米影视7777精品一区二区| 日韩成人午夜精品| 99精品欧美一区| 99国产精品久久久久久久久久| 粉嫩绯色av一区二区在线观看 | 色综合久久99| 91视频观看视频| 色屁屁一区二区| 99精品视频在线观看| 国产91丝袜在线播放九色| 亚洲精品第1页| 中文乱码免费一区二区| 日本一区二区免费在线观看视频| 亚洲五码中文字幕| 久久av中文字幕片| 色综合网色综合| 国产网站一区二区三区| 久久影视一区二区| 亚洲激情在线激情| 久久精品久久99精品久久| 91国偷自产一区二区三区观看 | 欧美成人aa大片| 中文字幕在线一区免费| 亚洲婷婷在线视频| 精品一区二区综合| 欧洲一区二区av| 国产女主播视频一区二区| 日一区二区三区| 久久精品理论片| 欧美日本在线看| 日韩一区二区麻豆国产| 欧美成人精品福利| 午夜国产不卡在线观看视频| 成人aaaa免费全部观看| 欧美一区二区三区日韩| ...xxx性欧美| 国模一区二区三区白浆| 欧美日韩成人综合| 亚洲精品国产成人久久av盗摄| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 狠狠色狠狠色合久久伊人| 亚洲永久精品国产| 亚洲一区二区中文在线| 亚洲欧洲日产国产综合网| 成人精品国产一区二区4080| 色综合久久久久网| 日韩视频免费直播| 爽好久久久欧美精品| 日韩和的一区二区| 成人av影院在线| 99久久99久久综合| 成人一区二区在线观看| 国产精品高潮久久久久无| 伊人性伊人情综合网| 成人性生交大合| 欧美裸体bbwbbwbbw| 亚洲一区二区三区四区的| 美国十次综合导航| 国产亚洲精品aa午夜观看| 亚洲国产乱码最新视频| a美女胸又www黄视频久久| 日韩欧美一级二级三级久久久| 免费av成人在线| 国产亚洲精品bt天堂精选| 国产乱码精品一区二区三区忘忧草| 中文字幕一区二区三区精华液 | 韩国av一区二区三区在线观看| 欧美精品一区二区三区很污很色的| 欧美一区二区三区免费视频| 中文字幕乱码久久午夜不卡| 99久久久无码国产精品| 中文字幕一区二区三区不卡| 亚洲精品免费电影| 奇米一区二区三区av| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 天天色综合天天| 日韩视频一区二区三区在线播放 | 2022国产精品视频| 一本到三区不卡视频| 亚洲三级电影网站| 在线看国产日韩| 国产欧美综合色| 成人综合在线观看| 亚洲国产一区二区三区青草影视| 欧美日韩一区二区在线观看视频| 久久精品国产免费| 久久久不卡网国产精品二区| 成人自拍视频在线观看| 国产精品久久久久久久浪潮网站 | 国产精品嫩草影院com| 国产91丝袜在线播放| 国产精品免费aⅴ片在线观看| 欧美性高清videossexo| 亚洲免费在线视频| 久久久久久99久久久精品网站| 日韩1区2区3区| 久久人人97超碰com| 色婷婷狠狠综合| 亚洲精品你懂的| 亚洲色大成网站www久久九九| 日本一区二区高清| 欧美人狂配大交3d怪物一区| 91蝌蚪porny| 国产露脸91国语对白| 丝袜a∨在线一区二区三区不卡| 亚洲欧洲成人精品av97| 日韩精品中文字幕在线一区| 日本高清视频一区二区| 亚洲国产日韩a在线播放| 国产精品欧美一区二区三区| 亚洲男人的天堂av| 欧美一区二区成人6969| 91精品国产日韩91久久久久久| 成人性色生活片免费看爆迷你毛片| 中文字幕一区二区三中文字幕| 亚洲国产成人午夜在线一区| 欧洲国产伦久久久久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲激情图片qvod| 久久久午夜精品| 欧美日韩久久一区二区| 国产九色精品成人porny| 国产亚洲一本大道中文在线| bt欧美亚洲午夜电影天堂| 午夜久久久久久久久| 成人av手机在线观看| 成人免费视频一区| 94色蜜桃网一区二区三区| 国产精华液一区二区三区| 日本中文在线一区| 亚洲精品在线免费观看视频| 精品日韩一区二区三区免费视频| 中文字幕一区免费在线观看| 中文字幕精品在线不卡| 久久综合给合久久狠狠狠97色69| 久久久久成人黄色影片| 国产经典欧美精品| 久久综合网色—综合色88| 一区二区三区欧美在线观看| 国产喷白浆一区二区三区| 成人午夜电影久久影院| 菠萝蜜视频在线观看一区| 日本va欧美va欧美va精品| 另类中文字幕网| 成人美女视频在线看| 成人精品国产一区二区4080| 色婷婷一区二区三区四区| 91精品国产aⅴ一区二区| 在线观看国产一区二区| 国产亚洲欧美色| 亚洲一区中文日韩| 五月婷婷综合在线| 久久狠狠亚洲综合| 国产精品888| 91免费小视频| 欧美高清激情brazzers| 国产亚洲精品7777| 婷婷激情综合网| av一本久道久久综合久久鬼色| 一本久久综合亚洲鲁鲁五月天| 欧美揉bbbbb揉bbbbb| 久久久久久久久蜜桃| 亚洲三级电影网站| 美女网站在线免费欧美精品| 成人av免费网站| 久久夜色精品国产噜噜av| 亚洲免费在线看| 成人一道本在线| 欧美肥大bbwbbw高潮|