單元5-1:XSL XML的轉換語言 王豐緒 銘傳大學資工系.

Slides:



Advertisements
Similar presentations
渡黑水溝 郁永河. 2 戎克船:是明末清初時期往返兩岸的主要交通工具 ∗ 1. 關於台灣的開發歷史,我們到底了解多少呢?不妨試著說出 就我們所知有關台灣開發史的故事、小說、電影、音樂與大 家分享。 ∗ 2. 什麼是黑水溝?黑水溝為什麼會成為大陸移民渡海來臺時最 大的威脅? ∗ 3. 有聽過「六死三留一回頭」、「有唐山公,無唐山嬤」這兩.
Advertisements

醫學美學之我見ー肉毒桿菌 班級:應日三乙 姓名:蔡雅卉 學號: 497E0076. 前言 現在的人,已經把 整型看做是微不足 道的事情了。即使 只是戴牙套、局部 雷射、割雙眼皮、 打美白針、肉毒桿 菌等等,都可以在 身體上做不同的改 變,而讓自己更滿 意自己的外表。
以XML可延伸式標注語言建立文章標誌系統研究- 以蘇軾詩為範圍
尊重差異 不挑不棄   吳若權.
职业教育.课程改革.项目课程 江苏省太仓中等专业学校校长 江苏省职业教育教学改革创新指导委员会委员 江苏省职业教育课程开发研究中心组组长
讲故事训练 授课人:田轶.
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
第十一課 菜園 6-11.
學習的科技 遊戲.
國中適性輔導宣導 生涯導航 談國中學生適性輔導 石牌國中 輔導室葉嘉惠.
99年成語200題庫(21-40).
原作:七度鱼.
校本选修课 第三专题 西藏问题 北京师大二附中 李文燕.
通訊科技教育改進計畫 「網路應用與服務組」 行動電子商務課程 XML之簡介.
XML应用体系结构 Application DOM SAX DOM4J XPath XSL XLink XML Namespace
Web图片搜索引擎设计 ——基于文本的图片信息提取.
第 11 章 網際網路與資料庫系統.
國立台灣大學國發所演講大綱 (請勿直接引用) 講者:張茂桂 中央研究院社會學研究所研究員 2005年03月09日
采编班的“三朵奇葩”? 精品团会主题.
XML 第05讲 使用CSS显示XML.
正修科技大學教學發展中心 教師教學觀摩與經驗分享 電子工程系 張法憲副教授.
让微笑伴您一生.
口才与思辨并重 专业与职业共扬 -----法学院 “口才训练营” 精品活动介绍.
中文元数据标准研究及其示范数据库 项目进展及其成果应用
蘇軾詞的賞析
柯奕宏(06) 王予亨(13) 郭秉逸(15) 楊雯凈(23) 顏佑瑩(32)
第十五章 传播学调查研究方法.
我___小明。 我今年十五___。 我是中国___。
自然與生活科技領域 認識太陽能 蘇紋琪、石明玉.
《XML技术及其应用》 第1章 XML 基础知识 主讲教师:桂浩 武汉大学.
第3章 超文本标记语言(HTML) 3.1 基本结构标记 3.2 文本格式标记 3.3 超链接标记<A></A>
 全能的天才畫家- 李奧納多‧達文西 (西元1452年-1519年) 指導老師:袁淑芬老師 製作人:饒佩芯.
行動研究就是一種行動性的研究,由行動者來進行研究,而不是由外於行動領域的學者與與科學家來進行,研究的問題也取自行動。
第12章 XSL-FO格式化輸出PDF 12-1 XSL-FO的基礎 12-2 XSL-FO的文件架構 12-3 XSL-FO的頁面範本
第六章 學習SQL語言.
EEI-XML 教學.
XSL簡介 XSLT 樣版規則及樣式 範本元素 排序元素
Ajax编程技术 第一章 Ajax简介.
XML資料傳輸 黃笠宸 4/3.
第 3 章 XML文件的轉換 –XSLT與XPath
醉上清新 点击此处添加标题 THE PROFESSIONAL POWERPOINT TEMPLATE 汇报人:宝藏PPT.
XSL: Extensible Stylesheet Language
扩展标记语言XML (Extensible Markup Language)
W3C标准网页制作 主讲教师:张 涛.
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
XML Scheam 也是用來驗證XML文件的驗證語法.
認識我的故鄉_台中市.
XML基礎課程 5 數位芝麻網路公司 XML講師:蔡斐婷.
範例 (登入) 輸入使用者帳號密碼後,點擊「登入」執行帳密檢驗和其他功能 資料庫中的會員資料表
題目:喜樂爸爸的歷練 經文:創世記三十一章36-44節.
<title> XML與XQuery ,新一代資料儲存標準 </title>
张孝祥IT课堂 -深入体验Java Web开发内幕
第 1 章 簡介XML.
武汉纺织大学传媒学院 cm.wtu.edu.cn
车东 Google XML接口的XSLT设计 车东
精忠报国  演唱:屠洪纲 作词:陈涛 作曲:张宏光  狼烟起 江山北望  龙起卷 马长嘶 剑气如霜  心似黄河水茫茫  二十年 纵横间 谁能相抗  恨欲狂 长刀所向  多少手足忠魂埋骨它乡  何惜百死报家国  忍叹惜 更无语 血泪满眶  马蹄南去 人北望  人北望 草青黄 尘飞扬  我愿守土复开疆  堂堂中国要让四方来贺.
經濟部工業局電子化人才培訓課程 清華大學工業工程與工程管理學系 課程名稱:電子商務管理與技術
HTML大探索.
第 6 章 XLink、XBase與XPointer
樂樂請假了 尊重的故事 資料來源:臺北縣國民小學品德教育手冊 故事來源:臺北縣國民小學品德教育手冊 網路小故事
聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝. 聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝.
聽聽那冷雨---重點摘要 二愛 王煜榕.
僅首頁出現本title即可 責任的故事(二年級) 生命最美麗動人的本能 簡報製作:瑞柑國民小學 鄭雙慧 文/ 何秀芳.
憲政與民主 應化3A 邱泓明.
2019 拓展CNKI应用 洞悉学术科研 同方知网(北京)技术有限公司四川分公司.
项目一 了解网站的概念 项目二 创建个人网站“鸿渐工作室” 项目三 制作“鸿渐工作室”的主页 项目四 HTML语言 项目五 制作“家乡特产”网页 项目六 制作“给我留言”网页 项目七 制作“应用技巧”网页 项目八 模板制作及应用.
古蹟知性之旅 我和新港奉天宮有個約 報告人:陳 映 竹 傅 湘 甯.
組長:李儂.組員:溫芷沂.詹文君 桃園市北門國小5年12班
西南科技大学网络教育系列课程 动态网页设计(JSP) 补充 JSP操作XML文件.
第17章 PHP應用實例探討 17-1 PHP應用實例探討 17-2 圖片版的訪客計數 17-3 訪客留言簿 17-4 聊天室
Presentation transcript:

單元5-1:XSL XML的轉換語言 王豐緒 銘傳大學資工系

單元目標 了解XSL與XML的關係 了解XSL基本語法與要素

XSL轉換模板(Transformation Templates) XSL「可延伸排版樣本語言」(eXtensible Stylesheet Language) 作為定義XML文件轉換樣式的一種語言 利用XSL轉換格式的能力可以將XML專換成各種開放的格式(如XML, HTML等) 在XML文件中宣告使用XSL <?xml-stylesheet type="text/xsl" href=“XSL檔案位址" ?>

XSL與XML的關係 XSL是由一組轉換模板(Transformation Template)所組成 XML 文件 轉換 XSLT <?xml version=“1.0?> <?xml-stylesheet type="text/xsl" href ="test.xsl" ?> <booklist> <book> <title>Old Man</title> <author>F. H. Wang</author> </book> <title>Goodness</title> <author>C. T. Lee</author> </booklist> XML 文件 XSLT 處理器 轉換 結果(HTML) XSL 文件 (只抓到第一組?) <xsl:stylesheet version = “1.0” xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="/"> <h1> <xsl:value-of select="//title"/> </h1> <h2> <xsl:value-of select="//author"/> </h2> </xsl:template> </xsl:stylesheet> <h1>Old Man</h1> <h2>F. H. Wang</h2> 轉換模板

XSL語法基本概念 XSL程式本身也是XML文件 由一堆轉換規則所組成(甚至沒有任何規則也可以) 每一條規則利用XPATH指令指定規則的啟動節點 規則內部則指定轉換的動作, 或針對其他節點(也是用XPATH指令描述)啟動相關規則 <xsl:template match="xpath" > <h1>Test XSL</h1> <xsl:apply-templates select=“xpath2“ /> </xsl:template>

XSL程式執行的基本概念 XSL程式的執行是資料(節點)導向 XML DOM Tree XSL 程式 Rule 1: Action1 … Rule N: ActionN XSL Processor Action 輸出結果

A popular game in Taiwan 一個簡單的範例 <xsl:template match=“sports" > <h1> <xsl:apply-templates select=“game“ /> </h1> </xsl:template> <xsl:template match=“game" > <p> <xsl:value-of select=“@title“ /> is <xsl:value-of select=“.“ /> </p> <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> </sports> / / sports game title=“baseball” A popular game in Taiwan sports <h1>….. </h1> game XSL Processor <p>baseball is A popular game in Taiwan </p>

XSL基本指令元素 xsl:stylesheet xsl:template xsl:apply-templates xsl:value-of <xsl:stylesheet>....</xsl:stylesheet> xsl:template <xsl:template match=”xpath” > 利用「match」設定xpath 指令設定本規則的啟動節點 xsl:apply-templates <xsl:apply-templates select=“xpath” /> 在xpath指定的節點上逐一套用適當的模板 xsl:value-of <xsl:value-of select= “xpath”/> 取出xpath定位到的第一個節點的值

另一個範例 <xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”> <!-- 沒有任何規則 --> </xsl:stylesheet > <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> </sports> / / sports game title=“baseball” A popular game in Taiwan sports game A popular game in Taiwan XSL Processor A popular game in Taiwan

XSL預設的模板(Templates) <xsl:template match=“/ | *”> <xsl:apply-templates /> </xsl:template> 此模板比對document node 以及element node,然後對其孩子節點繼續套用適當的模板 <xsl:template match=“text() | @*”> <xsl:value-of select=“.” /> </xsl:template> 此模板比對任何的文字節點 以及屬性節點,然後顯示該節點的值 <xsl:template match=“processing-instruction()| comment()” /> 此模板比對任何的PI節點 以及註解節點,然後不作任何處理(也就是忽略這些節點)

新增元素與屬性的XSL指令 新增元素 建立屬性 取得屬性 在輸出文件中建立一個元素標籤 <xsl:element name=”新增元素名稱”>...</xsl:element> 建立屬性 在輸出文件的元素內插入屬性 運用在一個元素標籤內或上述的<xsl:element>之內 <xsl:attribute name=”屬性名稱">屬性的值<xsl:attribute> 取得屬性 括弧 { } 加「@」 如 <xsl:element name=“{@title}”> … </xsl:element>

A popular game in Taiwan 新增元素與屬性的XSL範例 <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> </sports> <xsl:template match=“game" > <xsl:element name=“{@title}”> <xsl:attribute name=“des“ > <xsl:value-of select=“.“ /> </xsl:attribute> 我是新增的元素 </xsl:element> </xsl:template> / / sports game title=“baseball” A popular game in Taiwan <baseball des=“A popular …”> 我是新增的元素 </baseball> sports game XSL Processor

XSL的條件判斷指令 唯一條件判斷 多重條件判斷 <xsl:if test=”判斷條件”>...</xsl:if> <xsl:choose> <xsl:when test=”條件”>...</xsl:when> ..... <xsl:otherwise>...</otherwise> </xsl:choose>

A popular game in Taiwan 條件判斷的XSL範例 <xsl:template match=“game" > <xsl:if test=“@title=‘baseball’“ > <font color=“red”> <xsl:value-of select=“@title“ /> is <xsl:value-of select=“.“ /> </font> </xsl:if> </xsl:template> <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> </sports> / / sports game title=“baseball” A popular game in Taiwan <font color=“red”> baseball is A popular game in Taiwan </font> sports game XSL Processor

XSL的迴圈指令 xsl:for-each <xsl:for-each select=“xpath” > …(裡面的參考節點是xpath所定位的節點) </xsl:for-each> <xsl:sort order= “ascending | descending” select=“xpath2” /> 將for-each的結果依照某種xpath2順序來依序處理(遞增或遞減)

迴圈控制的XSL範例 XSL Processor <xsl:template match=“sports" > <xsl:for-each select=“game” > <xsl:sort order= “descending” select=“@title” /> <p> <xsl:value-of select=“@title“ /> is <xsl:value-of select=“.“ /> </p> </xsl:for-each> </xsl:template> <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> <game title = “tennisl”> A less popular game in Taiwan! </sports> <p> tennis is A less popular game in Taiwan </p> baseball is A popular XSL Processor

其他XSL基本元素 xsl:comment xsl:copy xsl:copy-of <xsl:comment>comment</xsl:comment> 輸出備註資料 xsl:copy <xsl:copy>…</xsl:copy> 將目前處理的節點輸出 (不包括子節點以及屬性節點) xsl:copy-of <xsl:copy-of select=“xpath” /> 將xpath所定位的XML節點輸出 包括其子孫節點以及屬性節點

節點複製的XSL範例一 XSL Processor <xsl:template match=“sports" > <xsl:copy > <p> <xsl:value-of select=“game/@title“ /> is <xsl:value-of select=“game“ /> </p> </xsl:copy> </xsl:template> <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> </sports> <sports> <p> baseball is A popular game in Taiwan </p> </sports> XSL Processor

節點複製的XSL範例二 XSL Processor <xsl:template match=“sports" > <?xml version=“1.0”?> <sports> <game title = “baseball”> A popular game in Taiwan! </game> </sports> <xsl:template match=“sports" > <xsl:copy-of select=“game” /> </xsl:template> XSL Processor <game title = “baseball”> A popular game in Taiwan! </game>

單元複習 XSL可作為XML文件的格式轉換器 介紹XSL基本語法與要素 XSL程式的架構與執行概念 XSL轉換規則的撰寫 各種轉換動作 新增元素,屬性 條件控制 迴圈控制 本投影片謹簡述若干基本XSL元素,同學仍須參考課本或講義更多細節