曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
• 處理多個元素
• 用表達式選擇節(jié)點
• 理解缺省的模板規(guī)則
• 確定輸出要包含的內(nèi)容
• 復制當前節(jié)點
• 對節(jié)點進行計數(shù)、對輸出元素分類以及插入CDATA 和<符號
• 設置模式特性
• 定義并創(chuàng)建命名模板
• 刪除和保留空格
• 基于輸入來改變輸出
• 合并多個樣式單
14.1 何為XSL?
變換和格式兩部分可相互獨立地起作用。例如,變換語言可將XML 文檔變換成結構整潔的HTML 文件,并且完全忽略XSL 格
式化對象。Internet Explorer 5.0 支持這種XSL 樣式,這在第5 章已討論過,本章著重討論這種樣式。
此外,以XSL 格式化對象編寫的文檔,并非絕對要求在另一個XML 文檔上使用XSL 變換部分才能產(chǎn)生。例如,很容易想象到
這樣的一個轉(zhuǎn)換器:它是用Java 語言寫成的,可讀取TeX 或PDF 文件,并把這些文件翻譯成XSL 格式化對象(盡管直到1999
年夏天仍沒有這樣的一種轉(zhuǎn)換器存在)。
實際上,XSL 是兩種語言,而不是一種。第一種語言是變換語言,第二種是格式化語言。變換語言是一種很有用的語言,它
與格式化語言無關。它能夠把數(shù)據(jù)從一種XML 表示移到另一種表示,這種功能,使它成為基于XML 的電子商務、電子數(shù)據(jù)交
換、元數(shù)據(jù)交換以及應用于需要在相同數(shù)據(jù)的不同XML 表示之間進行轉(zhuǎn)換的重要組成部分。由于缺乏對人們要瀏覽的顯示器
上顯示數(shù)據(jù)的了解,這些用途還要結合起來使用。它們純粹是用來將數(shù)據(jù)從一種計算機系統(tǒng)或程序移到另一種計算機系統(tǒng)或
程序中。
因此,許多早期的XSL 實現(xiàn)都毫無例外地將焦點集中在變換部分,而忽略了格式化對象。這些是不完善的實施方案,但仍然
是很有用的。并非所有的數(shù)據(jù)最終都必須顯示在計算機顯示器上或打印到紙上。
第15 章“XSL 格式化對象”將涉及XSL 格式化語言。
XML 實用大全
第 446 頁
有關XSL 警告語
XSL 仍然處于開發(fā)中。XSL 語言在過去發(fā)生了根本性的變化,將來肯定會再發(fā)生變化。本章是根據(jù)1999 年4 月21 日的XSL
規(guī)范草案(第四稿)寫成的。讀者閱讀此書時,此XSL 草案可能已經(jīng)被取代了,精確的XSL 句法將會變化。我希望本章與實
際的規(guī)范不會相差太大。但是,如果的確有不一致的地方,應將本書中的例子與最新規(guī)范進行對比。
糟糕的是,仍然沒有任何軟件能實現(xiàn)1999 年4 月21 日的XSL 規(guī)范草案(第四稿)的所有內(nèi)容,甚至不能實現(xiàn)XSL 變換的部
分,F(xiàn)有的所有產(chǎn)品只能實現(xiàn)當前草案的不同子集。而且,許多產(chǎn)品(包括Internet Explorer 5.0 和XT)加入的元素并
沒有出現(xiàn)在當前XSL 草案規(guī)范中。最后一點是,大多數(shù)至少要實現(xiàn)部分XSL 內(nèi)容的產(chǎn)品在其可實現(xiàn)的部分中也存在著很嚴重
的程序錯誤(bug)。因此,在不同的軟件中,只有廖廖無幾的幾個例子能準確地以相同的方式工作。
當然,隨著此項標準向最后版本改進時,當開發(fā)商解決了自己產(chǎn)品中的程序錯誤并實現(xiàn)沒有被實現(xiàn)的內(nèi)容時,以及當出版的
更多軟件支持XSL 時,最終這種情況是可以得到修正的。在達到此目的之前,還得面對這樣的選擇:要么忍痛使用目前不完
善的、未完成的XSL,并且試圖避開遇到的所有程序錯誤和疏忽,要么使用更確定的技術(如CSS),直到XSL 更加可靠為
止。
XML 實用大全
第 447 頁
14.2 XSL 變換概述
在XSL 變換中,XSL 處理程序讀取XML 文檔和XSL 樣式單;谔幚沓绦蛟赬SL 樣式單中找到的指令,輸出新的XML 文檔。
14.2.1 樹形結構
就像第6 章學到的那樣,每個結構整潔的XML 文檔都是樹形結構(tree)。樹形結構是一種數(shù)據(jù)結構,它是由連接起來的節(jié)
點(node)組成的,這些節(jié)點起始于一個稱為根節(jié)點(root)的單節(jié)點。根節(jié)點連接它的子節(jié)點,每個子節(jié)點可以連接零個
或多個它自己的子節(jié)點,依次類推。沒有自己的子節(jié)點的節(jié)點稱為葉節(jié)點(leave)。樹形結構的圖表更像家譜,列出各個
先輩的后代。樹形結構最有用的特征是每個節(jié)點及其子節(jié)點也會形成樹形結構。因此,一個樹形結構就是所有樹形結構的分
級結構,在此分級結構中,各樹形結構都是由更小的樹形結構建立的。
XML 樹形結構的節(jié)點就是元素及元素的內(nèi)容。但是,對于XSL,特性、命名域(namespace)、處理指令以及注釋必須也作為
節(jié)點看待。而且文檔的根節(jié)點必須與根(基本)元素區(qū)別開來。因此,XSL 處理程序假定XML 樹形結構包含下列七類節(jié)點:
1.根節(jié)點
2.元素
3.文本
4.特性
5.命名域
6.處理指令
7.注釋
例如,對于清單14-1 中的XML 文檔,它顯示的是元素周期表,在本章我將用這個元素周期表作為例子(更恰當?shù)卣f,是周
期表中的前兩個元素)。
完整的元素周期表放在本書所附光盤中的examples/periodic_table 文件夾中的allelements.xml 文件中。
根節(jié)點PERIODIC_TABLE 元素包含ATOM 子元素。每個ATOM 元素含有各種子元素,以便提供原子序數(shù)、原子量、符號、沸點
等等信息。UNITS 特性為具有單位的元素指定單位。
這里使用ELEMENT 比ATOM 或許更恰當。但是,寫成ELEMENT 元素難以區(qū)分化學元素和XML 元素。因此,起碼出于
本章的考慮,ATOM 似乎更具可讀性。
清單14-1:氫和氦元素的XML 周期表
<?xml version=”1.0”?>
<?xml-stylesheet type=”text/xsl” href=”14-2.xsl”?>
XML 實用大全
第 448 頁
<PERIODIC TABLE>
<ATOM STATE=”GAS”>
<NAME>Hydrogen</NAME>
<SYMBOL>H</SYMBOL>
<ATOMIC_NUMBER>l</ATOMIC_NUMBER>
<ATOMIC_WLIGHT>1.00794</ATOMIC_WEIGHT>
<BOILING_POINT UNITS=”Kelvin”>20.28</BOILING_POINT>
<MELTING_POINT UNITS=”Kelvin”>13.81</MELTING_POINT>
<DENSITY UNITS=”grdMS/cubic centimeter”><!- At 300K ->
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(126)