??????首先,我們來看看由W3C制定的XML轉(zhuǎn)換標(biāo)準(zhǔn)?XSL(eXtansible?Style?Language,擴(kuò)展樣式表語言)。它的作用就是讓XML看上去像現(xiàn)有的HTML一樣多姿多彩。在此基礎(chǔ)上,發(fā)展了三種XML應(yīng)用:XSLT、Xpath和XSL-SOXSLT(XSL?Transformation)負(fù)責(zé)將XML文檔動(dòng)態(tài)地轉(zhuǎn)換為HTML格式,并發(fā)送給瀏覽器。后兩種也具備類似功能,由于應(yīng)用不及XSLT廣泛,就不再介紹。?
??????要使用XSLT,必須在XML文檔中指出。例如,要使一篇XML文檔被瀏覽器請(qǐng)求時(shí)呈現(xiàn)類似于HTML的效果,必須在XML文檔前面指定相應(yīng)的XSL文件,如下所示:?
<?xml?version=“1.0”> <?xml-stylesheet?type=“text/xml”?href=“../xslt/normal.xsl”> <article> <name>whoami</name ……?xml?數(shù)據(jù)?…… </article> |
??????在相應(yīng)路徑中,應(yīng)當(dāng)有一個(gè)合適的normal.xsl文檔。?
??????XSLT使用模板完成XML到HTML的轉(zhuǎn)換。例如,想要將文檔中的<name>節(jié)點(diǎn)提取出來,并顯示為加粗字符,這樣的XSLT可以滿足要求:
//?文件名:normal.xsl <?xml?version=“1.0”?> <xsl:stylesheet?version=“1.0”xmlnsxsl=http://www.w3.org/1999/XSL/Transform> <!-由于MS一貫的作風(fēng),該名稱空間的定義并不適合MS?IE瀏覽器,它必須使用 ?xmlnsxsl=http://www.w3.org/TR/WD-xsl,注意區(qū)分大小寫?//--> <xsl:template?match=“/”> <div><style=“font-weight:bold”/> <xsl:value-of?select=“article/name”/> </div> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> |
??????正像前面說的那樣,XML非常嚴(yán)格,XSLT作為一種XML應(yīng)用同樣要遵守這種規(guī)則,因此,除了前兩行以外,所有的標(biāo)記都必須有對(duì)應(yīng)的結(jié)束標(biāo)記。?
??????當(dāng)能夠識(shí)別XSLT的瀏覽器(如IE?5.0及以上)獲取這一XML文檔后,會(huì)調(diào)用相應(yīng)的XSL文檔進(jìn)行解釋,那么,XSLT是如何工作的呢?它首先創(chuàng)建一個(gè)模板,匹配整個(gè)文檔,然后在其中尋找article/name節(jié)點(diǎn),并用value-of元素輸出該值,于是,我們通過瀏覽器看到的XML文檔就是:whoami。?
??????不會(huì)顯示任何其它XML元素。注意XSL文檔中加粗的部分,那些是普通的HTML文本,只是用來強(qiáng)調(diào)我們的輸出。
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????文章來源:http://www.jspcn.net