明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

最新XML介紹系列(3)

[摘要]系列七:XML DOMXML文檔對象模型在前面的文章里面,XML解釋器可以使用編程的方法來載入一個XML的文檔.當(dāng)這個文檔被載入以后,我們就可以通過XML DMO來獲取和操縱整個文檔的信息.你可以訪...
系列七:XML DOM

XML文檔對象模型
在前面的文章里面,XML解釋器可以使用編程的方法
來載入一個XML的文檔.當(dāng)這個文檔被載入以后,
我們就可以通過XML DMO來獲取和操縱整個文檔的信息.
你可以訪問ChildNodes屬性,這是一個你的文檔里面所有節(jié)點(diǎn)的入口.
這個節(jié)點(diǎn)接口用來讀和寫XML文檔樹狀結(jié)構(gòu)中的單個的節(jié)點(diǎn).
目前的Microsoft XML解釋器支持13種類型的節(jié)點(diǎn).
下面的列表中列出了最常用的節(jié)點(diǎn)類型.

節(jié)點(diǎn)類型 例子
Document type <!DOCTYPE food SYSTEM "food.dtd">
Processing instruction <?xml version="1.0"?>
Element <drink type="beer">Carlsberg</drink>
Attribute type="beer"
Text Carlsberg

DOM使用三種方式來顯示XML文檔.
documentElement是XML文檔樹的最高一級.
有childNodes的元素或則更多子節(jié)點(diǎn)的副元素.
還有用來移動樹狀結(jié)構(gòu)、訪問節(jié)點(diǎn)和其屬性值、插入或則刪除節(jié)點(diǎn)
和將樹狀結(jié)構(gòu)轉(zhuǎn)換成XML的函數(shù).
所有在這里面演示的Microsoft XML解釋器函數(shù)
都是被正式的W3C XML DOM規(guī)范所推薦的, 除了loadXML函數(shù).
不管你相信與否:官方的DOM中沒有包含一個標(biāo)準(zhǔn)的用來載入XML文檔的函數(shù)
(譯者理解為:就是沒有一個正規(guī)的函數(shù),只要給出xml的文件,就能夠顯示整個
樹狀結(jié)構(gòu),而必須都要經(jīng)過載入過程,然后自己編程來顯示這個樹狀結(jié)構(gòu)的意思)

瀏覽節(jié)點(diǎn)樹
下面的代碼將瀏覽整個節(jié)點(diǎn)樹,
并且把結(jié)果顯示在瀏覽器中:
set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("xml_note.xml")
for each x in xmlDoc.documentElement.childNodes
document.write(x.nodename)
document.write(": ")
document.write(x.text)
next

翻譯:Batman
系列八:XSL - The Style Sheet Language of XML(XML的樣式表語言)

HTML頁面使用標(biāo)志(tags)來顯示數(shù)據(jù),并且所有的標(biāo)志都很好理解
例如<p>是表示段落,<h1>表示標(biāo)題, 并且一個瀏覽器
也知道怎么來把這些標(biāo)志顯示在頁面中.
在XML中,我們使用了自定義的標(biāo)志,這些標(biāo)志的定義
瀏覽器不能夠理解了.例如一個XML中的標(biāo)志 <table>
可以被理解為HTML中的表格標(biāo)志
但是也可以理解為一種木制的家具.
于是為了顯示XML文檔,就必須有一種
來描述這些文檔如何顯示的機(jī)制.
這種機(jī)制就是XSL (eXtensible Stylesheet Language)
它是XML的樣式表描述語言.
XSL的歷史比HTML用的CSS(級聯(lián)樣式表Cascading Style Sheets)還要悠久.

XSL包括兩部分:
一個用來轉(zhuǎn)換XML文檔的方法
一個用來格式化XML文檔的方法
如果你沒法理解的話,可以把XSL當(dāng)成一種能夠把XML轉(zhuǎn)變成HTML的語言.
一種能夠篩選和排序XML文檔中數(shù)據(jù)的語言,
一種能夠根據(jù)XML的數(shù)據(jù)數(shù)值格式化XML數(shù)據(jù)的語言(例如把負(fù)數(shù)顯示成紅色).

轉(zhuǎn)換XML文檔
假設(shè)你現(xiàn)在想把下面的XML文檔 (使用IE5打開哦)轉(zhuǎn)換成HTML:
文件為portfolio.xml
<?xml version="1.0"?>
<portfolio>
<stock exchange="nyse">
<name>zacx corp</name>
<symbol>ZCXM</symbol>
<price>28.875</price>
</stock>
<stock exchange="nasdaq">
<name>zaffymat inc</name>
<symbol>ZFFX</symbol>
<price>92.250</price>
</stock>
</portfolio>
請記住這時的效果一

那么你可以試試使用下面的XSL文檔(使用IE5打開)
它是一個把你的XML中的數(shù)據(jù)轉(zhuǎn)換成大家都能夠讀的HTML文檔的模板
文件為portfolio.xsl
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Symbol</th>
<th>Name</th>
<th>Price</th>
</tr>
<xsl:for-each select="portfolio/stock">
<tr>
<td><xsl:value-of select="symbol"/></td>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在上面這個文件中,<xsl:for-each>元素定位XML文檔中的元素并且重復(fù)套用模板中的每一個元素.
由于XSL本身也是一個XML文件,所以這個文件的開始也
使用了一個XML的申明,<xsl:stylesheet>元素定義了這個文檔
是一個樣式表,
你必須要外套一個摸板<xsl:template match="/">它是對應(yīng)與
XML源文檔中的根節(jié)點(diǎn)的.
請記住這時的效果二

現(xiàn)在你在你的源文件中XML文檔中的第二行加入引用這個xsl文件
這時你的xml文件就會被轉(zhuǎn)換成HTML了(在IE5中打開這個文件):
文件為portfolio.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="portfolio.xsl"?>
<portfolio>
<stock exchange="nyse">
<name>zacx corp</name>
<symbol>ZCXM</symbol>
<price>28.875</price>
</stock>
<stock exchange="nasdaq">
<name>zaffymat inc</name>
<symbol>ZFFX</symbol>
<price>92.250</price>
</stock>
</portfolio>

一個跨瀏覽器平臺的解決方案:
當(dāng)你使用XSL來把XML文檔轉(zhuǎn)換成HTML后,
難道你沒有想到其實(shí)你已經(jīng)實(shí)現(xiàn)了讓各種不同的瀏覽器都能夠?yàn)g覽你的數(shù)據(jù)的
解決方案了嗎?
這個解決方案是如此的簡單:
只要在你的SERVER上把XML轉(zhuǎn)換成HTML并且把這個
HTML文檔傳遞給BROWSER.
這就是XSL的美妙之處,它實(shí)現(xiàn)了在服務(wù)器上能夠把數(shù)據(jù)格式從一種格式轉(zhuǎn)換成
另外一種格式.并且把可讀的數(shù)據(jù)返回給所有的瀏覽器

系列之九:XML Behaviors - 新的DHTML?

Behaviors - 這個是什么東東?
Behavior是一個新的CSS選擇屬性.
一個behavior選擇能夠指向一個單獨(dú)
的包含代碼(能夠執(zhí)行XML或則HTML頁面中元素)的文件

不知道你聽明白了否?它是一個能夠完全將HTML中的腳本代碼移走的方法嗎?
呵呵,好象就是這樣的!
現(xiàn)在我們可以來寫自己的腳本庫了,并且能夠把這些腳本庫運(yùn)用到我們希望
的任何一個元素上去了。

它是如何工作的呢?
還是讓例子來說明問題把:
下面是一個HTML文件:
<html>
<head>
<style>
h1 { behavior: url(behave.htc) }
</style>
</head>

<body>
<h1>Hello World</h1>
</body>
</html>

這個HTML文件有一個<style>元素
來定義了一個<h1>元素的behavior.
這個behavior的代碼保存在下面這個behave.htc 文件中:
<component>
<attach for="element" event="onmouseover" handler="hig_lite" />
<attach for="element" event="onmouseout" handler="low_lite" />

<script language="JavaScript">
function hig_lite
{
element.filters.glow.strength=5
}
function low_lite
{
element.filters.glow.strength=0
}
</script>
</component>

這個behavior文件包含了很普通的Java Script.
這個腳本包含在一個<component>元素中.
當(dāng)然這個component同樣包含了這個腳本的事件句柄
怎么樣,這個behavior是不是比較Cool呀?
去試試這個例子把,多移動鼠標(biāo),看看效果怎么樣?(請使用IE5)




標(biāo)簽:XML介紹系列(3)