曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
0.0899
</DENSITY>
</ATOM>
<ATOM STATE=”GAS”>
<NAME>Helium</NAME>
<SYMBOL>He</SYMBOL>
<ATOMIC_NUMBER>2</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>4.0026</ATOMIC_WEIGHT>
<BOILING_POINT UNITS=”Kelvin”>4.216</BOILING_POINT>
<MELTING_POINT UNITS=”Kelvin”>0.95</MELTING_POINT>
<DENSITY UNITS=”grams/cubic centimeter”><!- At 300K ->
0.1785
</DENSITY>
</ATOM>
</PERIODIC_TABLE>
XML 實用大全
第 449 頁
圖14-1 顯示的是本文檔作為樹形結構的圖解。它起始于頂端的根節點(不同于根元素!),包括兩個子節點:xml-stylesheet
處理指令和根元素PERIODIC_TABLE。(XML 聲明對XSL 處理程序是不可見的,因而不包括在XSL 處理程序進行操作的樹形結
構中)。PERIODIC_TABLE 元素包括兩個子節點,即兩個ATOM 元素。每個ATOM 元素都一個STATE 特性的特性節點和各種子
元素節點。每個子元素包括其內容的節點,以及任何特性節點和擁有的注釋。注意,在特殊情況下,許多節點可以是除元素
之外的任何內容。節點可為文本、特性、注釋和處理指令。與CSS1 不同,XSL 不限于只和全部元素一起使用,還有一個更
加獨特地查看文檔的方法:能夠根據注釋、特性、處理指令等設計樣式。
像XML 聲明一樣,內部的DTD 子集或DOCTYPE 聲明不是樹形結構的一部分。但是,通過使用#FIXED 或缺省特性值
的<!ATTLIST>聲明,它可能具有將特性節點添加到某些元素中的效果。
圖14-1 以樹形圖表示的清單14-1
XSL 變換語言通過將XML 樹形結構變換成另一個XML 樹形結構來操作。這種語言含有操作符,此操作符用來從樹形結構中選
擇特定節點、對節點重新排序以及輸出節點。如果有一個節點是元素節點,那么它本身可能就是整個樹形結構。請記住,所
有的用于輸入和輸出的操作符都只能操作一個樹形結構。它們不是用于變換任意數據的通用的正常表達語言。
14.2.2 XSL 樣式單文檔
更準確地說,當輸入時,XSL 變換接受以XML 文檔表示的樹形結構,而輸出時,則產生也以XML 文檔來表示的新的樹形結構。
因此,XSL 變換部分也稱為樹形結構建立部分。輸入和輸出的內容必須是XML 文檔。不能使用XSL 來變換成非XML 格式(如
PDF、TeX、Microsoft Word、PostScript、MIDI 或其他)或從非XML 格式進行變換?墒褂肵SL 將XML 變換為一中間格式
(如TeXML),然后使用另外的非XSL 軟件來將這個中間格式變換成期望的格式。HTML 和SGML 都是介乎于兩者之間的情況,
因為它們非常接近于XML。可使用XSL 將符合XML 的結構完整性規則的HTML 和SGML 文檔變換成XML 或者相反。但是,XSL
不能處理在大多數Web 站點上和文檔生成系統中遇到的各種各樣非結構整潔的HTML 和SGML 文檔。要牢記的首要問題是,XSL
變換語言對于XML 到XML 的變換是可行的,但對于其他方面則不行。
XSL 文檔包含一組模板規則和其他規則。模板規則擁有模式(pattern)以及模板(template),模式用來指定模板規則所
適用的樹形結構,而模板是用來在與此模式匹配時進行輸出。當XSL 處理程序使用XSL 樣式單來格式化XML 文檔時,它對
XML 文檔樹形結構進行掃描,依次瀏覽每個子樹形結構。當讀完XML 文檔中的每個樹形結構時,處理程序就把它與樣式單中
XML 實用大全
第 450 頁
每個模板規則的模式進行比較。當處理程序找到與模板規則的模式相匹配的樹形結構時,它就輸出此規則的模板。這個模板
通常包括一些標記、新的數據和從原XML 文檔的樹形結構中復制來的數據。
XSL 使用XML 來描述這些規則、模板和模式。XSL 文檔本身也是xsl:stylesheet 元素。每個模板規則都是xsl:template 元
素。規則的模式是xsl:template 元素的match 特性值。輸出模板是xsl:template 元素的內容。模板中所有的指令都是由一
個或另一個XSL 元素來完成的,而這些指令是來完成某種動作,如選擇輸入樹形結構中要包括在輸出樹形結構的部分。這些
由元素名上的xsl:前綴來標識。沒有xsl:前綴的元素為結果樹部分。
更恰當地說,作為XSL 指令的所有元素都是xsl 命名域的一部分。有關命名域將在第18 章“命名域”中討論。
在那以前,只要了解所有的XSL 元素的名稱都是以xsl:開頭就可以了。
清單14-2 顯示的是一個非常簡單的XSL 樣式單,它有兩個模板規則。第一個模板規則與根元素PFRIODIC_TABLE 相匹配,它
使用html 元素來代替此元素。html 元素的內容是將文檔中的其他模板應用于PFRIODIC_TABLE 元素中所獲得的結果。
第二個模板與ATOM 元素匹配,它用輸出文檔中的P 元素代替輸入文檔中的每個ATOM 元素。xsl:apply-templates 規則將匹
配的源元素的文本插入到輸出文檔中。因此,P 元素的內容將是包含在相應的ATOM 元素中的文本(但不是標記)。下面,
將更進一步討論這些元素的精確語法。
清單14-2:有兩個模板規則的周期表XSL 樣式單
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="PERIODIC_TABLE">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="ATOM">
<P>
<xsl:apply templates/>
</P>
</xsl:template>
</xsl:stylesheet>
XML 實用大全
第 451 頁
14.2.3 在何處進行XML 變換
使用XSL 樣式單可有三種主要方式將XML 文檔變換成其他格式(如HTML):
1.XML 文檔和相關的樣式單都是用于客戶端(Web 瀏覽器)的,然后客戶端程序按照樣式單中指定的格式變換文檔,并將它
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(127)