亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

XSLT輕松入門第二章:XSLT的實例

2024-07-21 02:03:59
字體:
來源:轉載
供稿:網友

2.XSLT的實例

2.1 XSLT如何轉換XML
2.2 一個實例
2.3 過程解析
2.4 XSLT的用途

2.1 XSLT如何轉換XML

我們打個有趣的比方,你玩過橡皮泥吧,用不同的模子按上去,就可以做出需要的形狀。如果我們假設XML數據文檔是一塊大橡皮泥,XSLT就象是一個模子,用力一按,就做出需要的形狀來---符合不同需要的HTML文檔。

具體看下面的過程示意圖:



我們將XML原文檔輸入,用XSL作為模板,通過轉換引擎,最終輸出需要的HTML文檔。其中的轉換引擎就是比喻中"用力一按"的過程。在具體應用中,有專門的軟件來實現這個轉換過程,名為XML Processor。目前已經有很多 Processor 軟件(下面將詳細提到),在IE5.5中也已經內嵌了XML Processor。

2.2 一個實例

現在我們來看一個簡單的XSLT實際應用例子,獲得一些感官上的認識。很多網頁設計師看到類似HTML的代碼才會放心,代碼是那樣的親切和熟悉。

例子1: "Hello, world!"

hello world作為第一個教程已經是程序語言中的慣例了。我們也遵守這個慣例,看看如何利用XSLT來顯示"hello world"。雖然這個例子沒有什么實際用途,但是請大家不要急,后面還有更詳細的例子。

第一步:建立要輸入XML文檔hello.xml。

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

<greeting>Hello, world!</greeting>

這是一個很簡單XML文檔,只包含一個節點的XML結構樹。

第二步:建立XSLT文檔hello.xsl。提示:默認的XSLT文件的后綴名為.xsl。

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

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<html>

<head>

<title>First XSLT example</title>

</head>

<body>

<p><xsl:value-of select="greeting"/></p>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

你現在可以用IE5.0以上版本瀏覽器打開這個hello.xsl文件,看到XSL的結構樹。

第三步:在XML中調用這個XSL文件。修改hello.xml的代碼為:

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

<?xml-stylesheet type="text/xsl" href="hello.xsl"?>

<greeting>Hello, world!</greeting>

ok,到這一步原理上已經完成了所有的代碼,接下來只要用一個XSLT的處理器(XML Processor)來執行hello.xml就可以看到"hello
world"的顯示結果了。流行的處理器軟件有以下幾種:

(1).James Clark的XT。下載網址:http://www.jclark.com/xml/xt.html

(2).IBM的XML for Java軟件包,名為LotusXSL。下載網址:www.alphaworks.ibm.com/tech/xml4j

(3).Saxon。下載網址:http://www.wrox.com

(4).微軟的MSXML3。下載網址:http://www.microsoft.com/xml

有網友要問,我想在瀏覽器中看到"hello world"的效果應該怎么做?在微軟的IE5.5內嵌了MSXML3解釋器,你可以用IE5.5打開hello.xml文件,就可以看到結果。如果只看到XML結構樹,不是單獨的"hello
world"字樣,說明你的瀏覽器沒有安裝MSXML3版本。

如果沒有安裝又想看效果怎么辦?那還是用我們在XML教程中的老辦法,采用JS實現。(這已經超出了本文要講的范圍,但為了更加直觀,便于理解,我們在這里提供實例代碼。)下面是一種實現的代碼,可以保存為hello.htm,和上面的hello.xml,hello.xsl放在同一目錄下面。最后用IE5.0以上版本打開hello.htm就可以看到效果了。

<html>

<head>

<script language="javascript" for="window" event="onload">

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.load("hello.xml");

nodes = xmlDoc.documentElement.childNodes;

greeting.innerText = nodes.item(0).text;

</script>

<title>First XSLT Example</title>

</head>

<body bgcolor="#FFFFFF">

<span id="greeting"></span><br>

</body>

</html>

2.3 過程解析

如果你成功的看到效果,你也許想知道這些代碼的具體含義,我們來詳細解說:看hello.xsl文件

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

這是標準的XML文檔的首行代碼,因為XSLT本身也是XML文檔。encoding屬性用來定義文檔使用的編碼形式,iso-8859-1主要支持西歐和北美的語言編碼。如果你想使用簡體中文,那么就應該寫成:

<?xml version="1.0" encoding="GB2312"?>

接下去的代碼是:

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

version="1.0">

這是標準的XSLT文件首行代碼。xsl:stylesheet代碼的意思是將文檔作為一個樣式表來(stylesheet)處理。xmlns:xsl屬性是一個名字空間聲明,和XML中的名字空間使用方法一樣,用來防止元素名稱重復和混亂。其中前綴xsl的意思是文檔中使用的元素遵守W3C的XSLT規范。最后的version屬性說明樣式表只采用XSLT
1.0的標準功能,這也是目前僅有的標準。

<xsl:template match="/">

一個<xsl:template>元素定義一個模板規則。屬性match="/"說明XML源文檔中,這個模板規則作用的起點。"/"是一種XPath語法,我們在后面將詳細講述,這里的"/"代表XML結構樹的根(root)。

接下去的代碼是:

<html>

<head>

<title>First XSLT Example</title>

</head>

<body>

<p><xsl:value-of select="greeting"/></p>

</body>

</html>

說明:當模板規則被觸發,模板的內容就會控制輸出的結果。例子中,模板大部分內容由HTML元素和文本構成。只有<xsl:value-of>元素是XSLT語法,這里<xsl:value-of>的作用是拷貝原文檔中的一個節點的值到輸出文檔。而select屬性則詳細指定要處理的節點名稱。這是XPath語法,"greeting"的意思就是尋找根節點名為greeting的元素,并用模板來處理這個節點。具體的就是找到<greeting>元素,然后將元素的值"hello
world"按模板樣式拷貝到輸出文件。

提示:由于XML文檔是嚴格的層級結構(用IE5查看XML文件,會看見XML文檔類似多級關聯菜單),所以我們形象的稱XML文檔為文檔樹,其中每一對元素稱作樹的一個節點。根元素就是根節點。

最后關閉所有元素:

</xsl:template>

</xsl:stylesheet>

好,例子解說完畢。你是否想過為什么要用這么復雜的方法來顯示"hello world"呢?

關鍵不在表面,而在于實質:用這種方法,hello world可以從XML文檔中被提取出來,并用各種不同的XSLT模板處理,來輸出不同需求的文檔。我們來看看XSLT的主要用途:

2.4 XSLT的用途

XSLT的主要用途就是數據轉換應用。

由于以XML為基礎的電子商務廣泛普及,XSLT作為數據轉換的角色也越來越重要。例如直接將電視新聞的數據格式轉換成報紙新聞需要的數據格式;將股票數據直接轉換成圖片顯示在網頁上;對EDI(電子數據交換)數據進行統計,排序等等。

XSLT是處理類似工作的理想工具。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人写真视频福利网| 国产精品极品在线| 岛国精品视频在线播放| 疯狂蹂躏欧美一区二区精品| 亚洲精品有码在线| 精品国产一区二区三区久久久| 热久久这里只有精品| 91探花福利精品国产自产在线| 中文字幕在线日韩| 九九精品在线视频| 97久久精品在线| 日韩第一页在线| 国产精品高精视频免费| 91av视频在线免费观看| 国产精品视频男人的天堂| 成人中文字幕+乱码+中文字幕| 欧美理论电影在线播放| 亚洲区bt下载| 亚洲黄色成人网| 午夜精品理论片| 影音先锋欧美精品| 欧美激情精品久久久久久免费印度| 欧美一区第一页| 欧美成人久久久| 91精品国产综合久久香蕉的用户体验| 亚洲欧美中文另类| 福利精品视频在线| 91网站免费看| 欧美性猛交xxxx乱大交极品| 久久在线观看视频| 色琪琪综合男人的天堂aⅴ视频| 热门国产精品亚洲第一区在线| 久久久久久久久久久91| 欧美理论电影在线播放| 欧美怡红院视频一区二区三区| 韩日精品中文字幕| 欧美国产乱视频| 夜夜嗨av一区二区三区四区| 欧美精品久久久久久久久久| 精品人伦一区二区三区蜜桃网站| 亚洲精品免费一区二区三区| 中文字幕日韩av电影| 亚洲在线一区二区| 成人性生交xxxxx网站| 亚洲国产成人久久综合| 国产精品日韩在线| 国产视频精品自拍| 韩剧1988在线观看免费完整版| 国产成人精彩在线视频九色| 亚洲视频电影图片偷拍一区| 国产亚洲精品久久久久动| 国产欧美一区二区三区在线看| 亚洲最大av在线| 国产欧美日韩免费看aⅴ视频| 亚洲人成网7777777国产| 国产精品色午夜在线观看| 亚洲人成电影网站色xx| 国产一区二区动漫| 国产精品欧美久久久| 午夜精品福利视频| 91伊人影院在线播放| 欧美夫妻性视频| 欧美国产日韩一区二区在线观看| 亚洲欧美激情在线视频| 亚洲免费视频在线观看| 欧美日韩国产综合新一区| 国产成人极品视频| 2023亚洲男人天堂| 国产精品一区二区女厕厕| 91在线看www| 国产日韩欧美一二三区| 91chinesevideo永久地址| 国产最新精品视频| 亚洲最新在线视频| 一区二区成人精品| 国产成人小视频在线观看| 欧美日韩国产成人高清视频| 久久理论片午夜琪琪电影网| 午夜精品一区二区三区视频免费看| 国产精品视频男人的天堂| 久久精品久久久久电影| 国产一区二区色| 狠狠色狠狠色综合日日五| 亚洲国产精品成人av| 欧美激情精品久久久久久免费印度| 亚洲a∨日韩av高清在线观看| 久久国产精品久久国产精品| 91沈先生作品| 国产欧美日韩免费| 日韩精品中文字幕有码专区| 亚洲自拍小视频免费观看| 国产精品日韩一区| 久久久久久久久久久免费精品| 欧美激情在线视频二区| 欧美精品成人在线| 国产精品偷伦视频免费观看国产| 久久久久久久久久久免费精品| 亚洲视频一区二区三区| 日韩欧美精品中文字幕| 国模私拍一区二区三区| 国产成人在线一区| 国内精品小视频在线观看| 欧美日本精品在线| 九九热精品视频国产| 91精品视频网站| 久久九九精品99国产精品| 欧美成人免费在线观看| 久久91超碰青草是什么| 最近中文字幕2019免费| 久久国产精品久久久| 久久久久久久久久久成人| 色综合伊人色综合网站| 国产成人精彩在线视频九色| 成人免费淫片视频软件| 日韩电影大片中文字幕| 久久久精品影院| 国内精品小视频在线观看| 精品调教chinesegay| 亚洲bt欧美bt日本bt| 国产欧美日韩精品丝袜高跟鞋| 一区二区三区视频在线| 久久的精品视频| 国产精品都在这里| 亚洲第一精品福利| 欧美日韩免费区域视频在线观看| 亚洲iv一区二区三区| 欧美日韩国产限制| 精品国产一区二区三区久久狼5月| 欧美一区二三区| 日本道色综合久久影院| 97热在线精品视频在线观看| 伊人一区二区三区久久精品| 日本不卡视频在线播放| 美女扒开尿口让男人操亚洲视频网站| 动漫精品一区二区| 欧美日韩亚洲高清| 国产噜噜噜噜久久久久久久久| 亚洲free性xxxx护士白浆| 国产有码在线一区二区视频| 91在线国产电影| 国产一区二区三区在线视频| 欧美日韩ab片| 日韩中文在线不卡| 日韩欧美一区二区三区| 欧美极品少妇xxxxⅹ裸体艺术| 国产成人午夜视频网址| 久久精品中文字幕一区| 亚洲精品一区av在线播放| 69视频在线免费观看| 91av在线免费观看视频| 国产成人激情小视频| 国产裸体写真av一区二区| 午夜精品久久久久久99热| 国产亚洲一区二区在线| 欧美精品免费看| 国产一区av在线| 欧美成人午夜激情视频| 成人免费视频a| 亚洲自拍中文字幕| 国产日本欧美一区二区三区| 色妞在线综合亚洲欧美| 亚洲欧美日韩成人| www亚洲欧美| 国产精品视频大全|