670 likes | 803 Views
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 文件
E N D
XML、Xpath轉換XML文件 No. XML - ch8
什麼是 XSL • XSL (延伸樣式語言) ,是用於展示 XML 內容外觀 (font, size, color .. ) 於網頁的樣式語言。 • XMLStyleSheet Language • eXtensible StyleSheet Language • 屬於一種Script語言 • XSL 的語法須依 XML格式 ,並以 *.xsl 為副檔名。 • 在功能上分為二部分 • 轉換XML文件 • 格式化XML文件(IE不支援格式化的部分規格)
為什麼需要 XSL • XSL用來定義XML文件該如何顯示。 • XSL能夠在輸出的文件中添加新的元素,或移動元素。 • XSL也能夠重新排列或者索引數據,它可以偵測並決定哪些元素被顯示,顯示多少。 • XSL 和 XSLT 的基本內容是一樣的。 • XSLT 的用意是幫助XML文檔(document)轉換為其它文檔.
XSL Family SGML XML HTML XSL XSLT XSL FO XSLT XPATH
XML Transform -Server端執行 HTML文件 XML處理器 XML 結果樹 XSLT處理器 XML處理器 XSLT Server端 Client端
XML Transform -Client端執行 Server端的執行過程 將XML與XSLT傳至Client端,由IE直接解析 XML XSLT Server端 Client端
XPath–關於定位 • Xpath • XPath是一種語言,一種節點位置的語言,用來描述XML元素的位置,如同硬碟資料夾的檔案路徑。 • 幫助XSLT在XML來源文件中查找定位資訊的語言。 • Xpath同時被XSLT和Xpointer所使用。
根節點 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文件
XPath–目前位置 • "/"是表示目前文檔的節點,類似DOS目錄分割符。 • “//”則表示目前文檔中下下層的子節點。 <xsl:for-each select="child::PEOPLE/descendant::PERSON"> <xsl:for-each select="PEOPLE//PERSON"> • PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON 元素。
XPath –尋址操作 • 軸(Axis)-選擇目前節點周圍所有的節點 • self . 選擇目前的節點。 • parent .. 選擇目前節點的父節點。 • attribute @ 選擇一個元素的所有屬性。 • Predicate則用來定位目前節點內部的元素,以方括號[]中加表達式:[ Expression ]。 • PERSON[position()=2] :這句代碼表示尋找第二個“PERSON”元素 • PERSON[starts-with(name, “B”)]: 這句代碼表示尋找所有名稱以“B”開頭的PERSON元素
XPath –運算符號 • and, or 就是普通意義的and, or • >, <, >=, <=, !=, = • 注意:在XSL文件中,< 符號要用< 表示,> 符號要用> 表示。
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)"/>
OO and Java Programming Dr. Max Chi 3 XML Design and Programming Dr. Max Chi 3 顯示範例 基本資料: 9876543 戚玉樑 資管系 max@mail.chna.edu.tw 本學期必(選)修科目:
簡單的例子-1 第一步:建立 XML檔 course.xml <?xml version="1.0" ?> <Course>XML Design and Programming</Course> <Instructor>Dr. Max Chi</Instructor>
簡單的例子-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>
簡單的例子-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> 執行
課本的例子-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>
課本的例子-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>
課本的例子-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> 執行
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格式
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"?> 使用 ? 前導 可調換宣告順序
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>
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
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
編寫一個 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">
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> 在根標籤需宣告 名稱空間
XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)
Xsl:value-of (內容元素) • 從XML文件中取得元素的值 • 語法 <xsl:value-of select=“選取敘述”></xsl:value-of> • 選取敘述:選取欲取得值之元素的Xpath敘述 • 範例 <xsl:template match=“item”> <xsl:value-of select=“title”/> <xsl:template>
<?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 李白 太白 怨情 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行
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 作者的字號: 太白 執行
無內容, 路徑必須由 根元素起逐層 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 作者的姓名: 作者的字號: 執行
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 執行 作者: 李白 標題: 怨情 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰?
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 改變文件內容順序 怨情 --- 作者: 李白 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行
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 藉 @顯示屬性內容 怨情 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行
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 藉 @顯示屬性內容 怨情 --- 李白 [ 字: 太白 ] 美人捲珠簾,深坐蹙蛾眉。但見淚痕濕,不知心恨誰? 執行
XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)
xsl:template (範本元素) • xsl:template是用來指定一個範本,內含元素內容的樣式規則。 • 語法 <xsl:template match=“模式”name=“樣版名稱”> …… </xsl:template> • Match屬性的模型為「/」指的是根節點和其下所有元素 • 只用一組 xsl: template 時可省略宣告xsl:stylesheet • xsl:template 使用範例 <xsl:template match=“內容”> 執行
XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)
xsl:apply-templates (遞回範本元素) • xsl:apply-templates • 使用遞迴方式顯示所有的子元素 • 可用來呼叫其他範本(temlate) 處理子元素內容的樣式規則, 如同呼叫一遞回函數。 • xsl:apply-templates 使用於 xsl:template 內,常見使用範例 • <xsl:apply-templates /> • <xsl:apply-templates select="標題" />
王維 竹里館 獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 孟浩然 宿建德江 移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 王之渙 登鸛雀樓 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 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 執行
王維 竹里館 獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 孟浩然 宿建德江 移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 王之渙 登鸛雀樓 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 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 執行
竹里館王維 宿建德江 孟浩然 登鸛雀樓 王之渙 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
XSL 資料安排語法 • xsl:value-of (內容元素) • xsl:template (範本元素) • xsl:apply-templates (遞回範本元素) • xsl:for-each (迴路元素) • xsl:sort (排序元素) • xsl:if (單一條件元素) • xsl:choose (多條件元素)
Xsl:for-each • 對於XML文件的重複元素,可使用XSLT遞迴元素顯示XML元素內容 • 語法 <xsl:for-each select="booklist/book"> …… </xsl:for-each>
xsl:for-each (迴路元素) • xsl:for-each 是用來取出XML文件中被選擇相同元素的內容。 • xsl:for-each 通常亦搭配 • select=“ tag-path ”執行選擇 • order-by=“ tag-path ”執行排序。
王維 竹里館 獨坐幽篁裡,彈琴復長嘯。深林人不知,明月來相照。 孟浩然 宿建德江 移舟泊煙渚,日暮客愁新。野曠天低樹,江清月近人。 王之渙 登鸛雀樓 白日依山盡,黃河入海流。欲窮千里目,更上一層樓。 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 執行