1 / 67

XML 、 Xpath 轉換 XML 文件

XML 、 Xpath 轉換 XML 文件. No. XML - ch8. Part I 關於 XSL. 什麼是 XSL. XSL ( 延伸樣式語言 ) ,是用於展示 XML 內容外觀 ( font, size, color .. ) 於網頁的 樣式語言。 X ML S tyleSheet L anguage e X tensible S tyleSheet L anguage 屬於一種 Script 語言 XSL 的 語 法須依 XML 格式 , 並以 *. xsl 為副檔名 。 在功能上分為二部分 轉換 XML 文件

kamana
Download Presentation

XML 、 Xpath 轉換 XML 文件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML、Xpath轉換XML文件 No. XML - ch8

  2. Part I關於 XSL

  3. 什麼是 XSL • XSL (延伸樣式語言) ,是用於展示 XML 內容外觀 (font, size, color .. ) 於網頁的樣式語言。 • XMLStyleSheet Language • eXtensible StyleSheet Language • 屬於一種Script語言 • XSL 的語法須依 XML格式 ,並以 *.xsl 為副檔名。 • 在功能上分為二部分 • 轉換XML文件 • 格式化XML文件(IE不支援格式化的部分規格)

  4. 為什麼需要 XSL • XSL用來定義XML文件該如何顯示。 • XSL能夠在輸出的文件中添加新的元素,或移動元素。 • XSL也能夠重新排列或者索引數據,它可以偵測並決定哪些元素被顯示,顯示多少。 • XSL 和 XSLT 的基本內容是一樣的。 • XSLT 的用意是幫助XML文檔(document)轉換為其它文檔.

  5. XSL Family SGML XML HTML XSL XSLT XSL FO XSLT XPATH

  6. CSS與XSLT的差異

  7. XML Transform -Server端執行 HTML文件 XML處理器 XML 結果樹 XSLT處理器 XML處理器 XSLT Server端 Client端

  8. XML Transform -Client端執行 Server端的執行過程 將XML與XSLT傳至Client端,由IE直接解析 XML XSLT Server端 Client端

  9. Part IIXPath 語言

  10. XPath–關於定位 • Xpath • XPath是一種語言,一種節點位置的語言,用來描述XML元素的位置,如同硬碟資料夾的檔案路徑。 • 幫助XSLT在XML來源文件中查找定位資訊的語言。 • Xpath同時被XSLT和Xpointer所使用。

  11. 根節點 root 元素節點 <?xml?> glossary PI節點 item version 屬性節點 item item version title definition title definition text title text definition text title title version text text text 文字資料 Xpath資料模型 Xpath位置路徑 /glossary/item/title /glossary/item//title XML文件

  12. XPath–目前位置 • "/"是表示目前文檔的節點,類似DOS目錄分割符。 • “//”則表示目前文檔中下下層的子節點。 <xsl:for-each select="child::PEOPLE/descendant::PERSON"> <xsl:for-each select="PEOPLE//PERSON"> • PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON 元素。

  13. XPath –尋址操作 • 軸(Axis)-選擇目前節點周圍所有的節點 • self . 選擇目前的節點。 • parent .. 選擇目前節點的父節點。 • attribute @ 選擇一個元素的所有屬性。 • Predicate則用來定位目前節點內部的元素,以方括號[]中加表達式:[ Expression ]。 • PERSON[position()=2] :這句代碼表示尋找第二個“PERSON”元素 • PERSON[starts-with(name, “B”)]: 這句代碼表示尋找所有名稱以“B”開頭的PERSON元素

  14. XPath –運算符號 • and, or 就是普通意義的and, or • >, <, >=, <=, !=, = • 注意:在XSL文件中,< 符號要用&lt; 表示,> 符號要用&gt; 表示。

  15. XPath –功能函數 • 在XPath裏有很多功能函數可以幫助我們精確尋找需要的節點。 • count():統計次數,返回符合條件的節點的個數。 <xsl:value-of select="count(PERSON[name=tom])"/> • number():將屬性的值中的文本轉換為數值。 The number is: <xsl:value-of select="number(book/price)"/> • sum():求和。 Total Price = <xsl:value-of select="sum(//price)"/>

  16. Part IIIXSLT 語法

  17. OO and Java Programming Dr. Max Chi 3 XML Design and Programming Dr. Max Chi 3 顯示範例 基本資料: 9876543 戚玉樑 資管系 max@mail.chna.edu.tw 本學期必(選)修科目:

  18. 簡單的例子-1 第一步:建立 XML檔 course.xml <?xml version="1.0" ?> <Course>XML Design and Programming</Course> <Instructor>Dr. Max Chi</Instructor>

  19. 簡單的例子-2 第二步:建立XSLT 檔 show.xsl。 <?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <p><xsl:value-of select="Course"/></p> <p><xsl:value-of select="Instructor"/></p> </body> </html> </xsl:template> </xsl:stylesheet>

  20. 簡單的例子-3 第三步:在XML中調用 show.xsl 文件。修改course.xml 為: <?xml version="1.0" ?> <?xml-stylesheet type="text/xsl" href=“show.xsl"?> <Course>XML Design and Programming</Course> <Instructor>Dr. Max Chi</Instructor> 執行

  21. 課本的例子-1 <?xml version="1.0" encoding="Big5"?> <glossary> <item> <title version="EN">eXtensible Markup Language</title> <definition>可擴充展標示語言<title>XML</title></definition> </item> <item> <title version="EN">encoding</title> <definition>字碼集</definition> </item> <item> <title version="EN">Uniform Resource Identifier</title> <definition>統一資源識別符號<title>URI</title></definition> </item> </glossary>

  22. 課本的例子-2 <?xml version="1.0" encoding="Big5"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/glossary/item[position()=1]"> <center><h2>XML專有名詞</h2></center> <hr/> <p><b><xsl:value-of select="title"/> - <xsl:value-of select="definition"/></b> (<xsl:value-of select="definition/title"/>)</p> </xsl:template> <xsl:template match="/glossary/item[position()=2]"> <p><i><xsl:value-of select="title"/> - <xsl:value-of select="definition"/></i> </p> </xsl:template> <xsl:template match="/glossary/item/title[@version='AB']"> <p><u><xsl:value-of select="."/> - <xsl:value-of select="@version"/></u></p> </xsl:template> <xsl:template match="/glossary/item[last()]/definition"> <p><u><xsl:value-of select="."/></u> (<xsl:value-of select="title"/>)</p> </xsl:template> </xsl:stylesheet>

  23. 課本的例子-3 <?xml version="1.0" encoding="Big5"?> <?xml-stylesheet type="text/xsl" href="Ch8-5-1.xslt" ?> <glossary> <item> <title version="EN">eXtensible Markup Language</title> <definition>可擴充展標示語言<title>XML</title></definition> </item> <item> <title version="TW">encoding</title> <definition>字碼集</definition> </item> <item> <title version="AB">Uniform Resource Identifier</title> <definition>統一資源識別符號<title>URI</title></definition> </item> </glossary> 執行

  24. Ex411_1.xsl <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/xsl"> <xsl:template match="唐詩/五言絕句/內容" > <xsl:value-of /> </xsl:template> </xsl:stylesheet> XSL 的語法須依 XML格式

  25. XML 套用 XSL • XML 如要使用XSL (延伸樣式語言) ,必須在宣告區註明 。 <?xml:stylesheet type=”text/xsl” href=“URL”?> 範例 <?xml-stylesheet href="ex421_2.xsl" type="text/xsl"?> <?xml-stylesheet type="text/xsl" href="ex421_2.xsl"?> 使用 ? 前導 可調換宣告順序

  26. XSL與 HTML 混合使用 <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <xsl:value-of select ="唐詩/五言絕句/內容" /> <br/> <xsl:value-of select ="唐詩/五言絕句/標題" /> <br/> <xsl:value-of select ="唐詩/五言絕句/作者" /> </xsl:template> </xsl:stylesheet>

  27. XSL與 HTML 混合使用 <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h3> <xsl:value-of select ="唐詩/五言絕句/作者" /> </h3> <h2> <xsl:value-of select ="唐詩/五言絕句/標題" /> </h2> <xsl:value-of select ="唐詩/五言絕句/內容" /> </xsl:template> </xsl:stylesheet> XSL與 HTML 混合使用例 413_2.xsl

  28. XSL 與 CSS ?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h3 style="color:red"> <xsl:value-of select ="唐詩/五言絕句/作者" /> </h3> <h2 style="color:red"> <xsl:value-of select ="唐詩/五言絕句/標題" /> </h2> 局部性改變原 HTML/ CSS 之樣式例 415_1.xsl

  29. 編寫一個 XSL 檔案 • 第一行使用 XML 標準宣告 <?xml version="1.0" encoding="BIG5" ?> • 第二行宣告 xsl 的 NameSpace <xsl:stylesheet xmlns:xsl="uri:xsl"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/xsl">

  30. XSLT的基本架構 <?xml version="1.0" encoding="Big5"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> …… …… </xsl:template> </xsl:stylesheet> 在根標籤需宣告 名稱空間

  31. XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)

  32. Xsl:value-of (內容元素) • 從XML文件中取得元素的值 • 語法 <xsl:value-of select=“選取敘述”></xsl:value-of> • 選取敘述:選取欲取得值之元素的Xpath敘述 • 範例 <xsl:template match=“item”> <xsl:value-of select=“title”/> <xsl:template>

  33. <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <xsl:value-of select ="唐詩" /> </xsl:template> </xsl:stylesheet> xsl:value-of 範例-1 (全體) <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex421_1.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者> <姓名> 李白 </姓名> <字號> 太白 </字號> </作者> <標題>怨情</標題> <內容>美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?</內容> </五言絕句> </唐詩> Ex421_1.xsl 李白 太白 怨情 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行

  34. xsl:value-of 範例-2 (細節) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h2> 作者的字號: <xsl:value-of select ="唐詩/五言絕句/作者/字號" /> </h2> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex421_2.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者> <姓名> 李白 </姓名> <字號> 太白 </字號> </作者> <標題>怨情</標題> <內容>美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?</內容> </五言絕句> </唐詩> Ex421_2.xsl 作者的字號: 太白 執行

  35. 無內容, 路徑必須由 根元素起逐層 mapping xsl:value-of 範例-3 (錯置) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h2> 作者的姓名: <xsl:value-of select ="唐詩/五言絕句/姓名" /> <br/> 作者的字號: <xsl:value-of select ="唐詩/五言絕句/作者/字號" /> </h2> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex421_3.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者> <姓名> 李白 </姓名> <字號> 太白 </字號> </作者> <標題>怨情</標題> <內容>美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?</內容> </五言絕句> </唐詩> Ex421_3.xsl 作者的姓名: 作者的字號: 執行

  36. xsl:value-of 範例-4 (重覆) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h2> 作者: <xsl:value-of select ="唐詩/五言絕句/作者/姓名" /> <br/> 標題: <xsl:value-of select ="唐詩/五言絕句/標題" /> </h2> <h3> <xsl:value-of select ="唐詩/五言絕句/內容" /> </h3> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex422_1.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者> <姓名> 李白 </姓名> <字號> 太白 </字號> </作者> <標題>怨情</標題> <內容>美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?</內容> </五言絕句> </唐詩> Ex422_1.xsl 執行 作者: 李白 標題: 怨情 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?

  37. xsl:value-of 範例-5 (順序) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h2> <xsl:value-of select ="唐詩/五言絕句/標題" /> --- 作者: <xsl:value-of select ="唐詩/五言絕句/作者/姓名" /> </h2> <h3> <xsl:value-of select ="唐詩/五言絕句/內容" /> </h3> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex422_2.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者> <姓名> 李白 </姓名> <字號> 太白 </字號> </作者> <標題>怨情</標題> <內容>美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?</內容> </五言絕句> </唐詩> Ex422_2.xsl 改變文件內容順序 怨情 --- 作者: 李白 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行

  38. xsl:value-of 範例-6 (屬性) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h2> <xsl:value-of select ="唐詩/五言絕句/@標題" /> </h2> <h3> <xsl:value-of select ="唐詩/五言絕句/內容" /> </h3> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex423_1.xsl" type="text/xsl"?> <唐詩> <五言絕句 標題="怨情"> <作者 字號=“太白”> 李白 </作者> <內容>美人捲珠簾,深坐蹙蛾眉。 但見淚痕濕,不知心恨誰? </內容> </五言絕句> </唐詩> Ex423_1.xsl 藉 @顯示屬性內容 怨情 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行

  39. xsl:value-of 範例-7 (屬性) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template> <h2> <xsl:value-of select ="唐詩/五言絕句/@標題" /> --- <xsl:value-of select ="唐詩/五言絕句/作者" /> [ 字: <xsl:value-of select ="唐詩/五言絕句/作者/@字號" /> ] </h2> <h3> <xsl:value-of select ="唐詩/五言絕句/內容" /> </h3> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex423_2.xsl" type="text/xsl"?> <唐詩> <五言絕句 標題="怨情"> <作者 字號=“太白”> 李白 </作者> <內容>美人捲珠簾,深坐蹙蛾眉。 但見淚痕濕,不知心恨誰? </內容> </五言絕句> </唐詩> ex423_2.xsl 藉 @顯示屬性內容 怨情 --- 李白 [ 字: 太白 ] 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行

  40. XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)

  41. xsl:template (範本元素) • xsl:template是用來指定一個範本,內含元素內容的樣式規則。 • 語法 <xsl:template match=“模式”name=“樣版名稱”> …… </xsl:template> • Match屬性的模型為「/」指的是根節點和其下所有元素 • 只用一組 xsl: template 時可省略宣告xsl:stylesheet • xsl:template 使用範例 <xsl:template match=“內容”> 執行

  42. XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)

  43. xsl:apply-templates (遞回範本元素) • xsl:apply-templates • 使用遞迴方式顯示所有的子元素 • 可用來呼叫其他範本(temlate) 處理子元素內容的樣式規則, 如同呼叫一遞回函數。 • xsl:apply-templates 使用於 xsl:template 內,常見使用範例 • <xsl:apply-templates /> • <xsl:apply-templates select="標題" />

  44. 王維  竹里館 獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 孟浩然  宿建德江 移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 王之渙  登鸛雀樓 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 xsl:apply-templates 範例-1 <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="uri:xsl"> <xsl:template> <xsl:for-each select="唐詩/五言絕句"> <xsl:apply-templates /> </xsl:for-each> </xsl:template> <xsl:template match="作者"> <span style="color:red;font-size:18"> <xsl:value-of /> </span> </xsl:template> <xsl:template match="標題"> <span style="color:blue;font-size:15"> <xsl:value-of /> </span> </xsl:template> <xsl:template match="內容"> <p><xsl:value-of /></p> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex431_1.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者>王維</作者> <標題>竹里館</標題> <內容>獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 </內容> </五言絕句> <五言絕句> <作者>孟浩然</作者> <標題>宿建德江</標題> <內容>移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 </內容> </五言絕句> <五言絕句> <作者>王之渙</作者> <標題>登鸛雀樓</標題> <內容>白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 </內容> </五言絕句> </唐詩> Ex431_1.xsl 執行

  45. 王維  竹里館 獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 孟浩然  宿建德江 移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 王之渙  登鸛雀樓 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 xsl:apply-templates 範例-2 <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="uri:xsl"> <xsl:template> <xsl:for-each select="唐詩/五言絕句"> <xsl:apply-templates /> </xsl:for-each> </xsl:template> <xsl:template match="*"> <p style="color:red;font-size:15"> <xsl:value-of /> </p> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex431_3.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者>王維</作者> <標題>竹里館</標題> <內容>獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 </內容> </五言絕句> <五言絕句> <作者>孟浩然</作者> <標題>宿建德江</標題> <內容>移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 </內容> </五言絕句> <五言絕句> <作者>王之渙</作者> <標題>登鸛雀樓</標題> <內容>白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 </內容> </五言絕句> </唐詩> Ex431_3.xsl 執行

  46. 竹里館王維 宿建德江 孟浩然 登鸛雀樓 王之渙 xsl:apply-templates範例-3 <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="uri:xsl"> <xsl:template> <xsl:for-each select="唐詩/五言絕句"> <xsl:apply-templates select="標題" /> <xsl:apply-templates select="作者" /> <p/> </xsl:for-each> </xsl:template> <xsl:template match="作者"> <span style="color:red;font-size:18"> <xsl:value-of /> </span> </xsl:template> <xsl:template match="標題"> <span style="color:blue;font-size:24"> <xsl:value-of /> </span> </xsl:template> <xsl:template match="內容"> <p><xsl:value-of /></p> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex432_1.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者>王維</作者> <標題>竹里館</標題> <內容>獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 </內容> </五言絕句> <五言絕句> <作者>孟浩然</作者> <標題>宿建德江</標題> <內容>移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 </內容> </五言絕句> <五言絕句> <作者>王之渙</作者> <標題>登鸛雀樓</標題> <內容>白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 </內容> </五言絕句> </唐詩> 執行 Ex432_1.xsl

  47. XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)

  48. Xsl:for-each • 對於XML文件的重複元素,可使用XSLT遞迴元素顯示XML元素內容 • 語法 <xsl:for-each select="booklist/book"> …… </xsl:for-each>

  49. xsl:for-each (迴路元素) • xsl:for-each 是用來取出XML文件中被選擇相同元素的內容。 • xsl:for-each 通常亦搭配 • select=“ tag-path ”執行選擇 • order-by=“ tag-path ”執行排序。

  50. 王維  竹里館 獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 孟浩然  宿建德江 移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 王之渙  登鸛雀樓 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 xsl:for-each 範例-1 (全體) <?xml version="1.0" encoding="BIG5" ?> <xsl:stylesheet xmlns:xsl="uri:xsl"> <xsl:template> <xsl:for-each select="唐詩/五言絕句"> <p style="color:blue"> <xsl:value-of select="作者" /> <xsl:value-of select="標題" /></p> <p><xsl:value-of select="內容" /></p> </xsl:for-each> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="BIG5" ?> <?xml-stylesheet href="ex424_1.xsl" type="text/xsl"?> <唐詩> <五言絕句> <作者>王維</作者> <標題>竹里館</標題> <內容>獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 </內容> </五言絕句> <五言絕句> <作者>孟浩然</作者> <標題>宿建德江</標題> <內容>移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 </內容> </五言絕句> <五言絕句> <作者>王之渙</作者> <標題>登鸛雀樓</標題> <內容>白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 </內容> </五言絕句> </唐詩> Ex424_1.xsl 執行

More Related