曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
根元素中的頂級元素中。例如,下面的這些xsl:import 元素導入genealogy.xsl 和standards.xsl 樣式單。
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/XSL/Transform/1.0”>
<xsl:import href=”genealogy.xsl”/>
<xsl:import href=”standards.xsl”/>
<!- other child elements follow ->
</xsl:stylesheet>
導入的樣式單中的規則可能與執行導入的樣式單中的規則發生沖突。如果真是這樣,那么執行導入的樣式單中的規則優先。
如果不同的被導入樣式單中的兩個規則發生沖突,那么最后那個被導入的(如上面例子中的standards.xsl)優先。
xsl:apply-imports 元素與xsl:apply-templates 有點差別,后者只使用被導入的規則。xsl:apply-imports 元素不使用執
行導入的樣式單中的任何規則。這樣就可以訪問被導入的規則,否則被導入的規則就會被執行導入的樣式單中的規則所覆蓋。
除了名稱不同外,xsl:apply-imports 與xsl:apply-templates 有一樣的句法,唯一的作用方式差別是它只與被導入樣式單
中的模板規則匹配。
14.19.2 使用xsl:include 進行包括
xsl:include 元素也是頂級元素,它將另一個樣式單復制到當前樣式單中它所出現的位置處(更確切是說,它將遠程文檔中
xsl-stylesheet 元素的內容復制到當前文檔中)。它的href 特性提供要包括的樣式單的URI。xsl:include 元素可放在頂
級處于最后那個xsl:import 元素之后的任何地方。
不像xsl: imporlt 元素所包括的規則那樣,xsl:include 元素所包括的規則與執行包括的樣式單中的規則具有同樣的優先
級,利用這種優先級關系來決定是否從一個樣式單到另一個樣式單的復制和粘貼。對于格式化引擎來說,被包括的規則與實
際存在的規則之間沒有任何區別。
14.19.3 使用xsl:stylesheet 在文檔中嵌入樣式單
可直接將XSL 樣式單包括在使用它的XML 文檔中。實際上,我不推薦這種方法,而且瀏覽器和格式化引擎也不一定支持這一
作法。但是,有幾個瀏覽器和格式化引擎卻支持這一作法。為達此目的,xsl:stylesheet 元素必須以文檔元素的子元素而
不是根元素本身的形式出現。它可能有一個id 特性,用來為其取唯一的名稱,此id 特性是作為xsl:stylesheet 處理指令
中的href 特性值的形式出現的,緊跟在的anchor(錨)標識符(#)之后。清單14-20 演示此過程:
XML 實用大全
第 529 頁
清單14-20:在XML 文檔中嵌入的XSL 樣式單
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="#id(mystyle)"?>
<PERIODIC_TABLE>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
id= "mystyle ">
<xsl:template match="/">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="PERIODIC_TABLE">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ATOM">
<P>
<xsl:value-of select="."/>
</P>
</xsl:template>
</xsl:stylesheet>
<ATOM>
<NAME>Actinium</NAME>
<ATOMIC_WEIGHT>227</ATOMIC_WEIGHT>
XML 實用大全
第 530 頁
<ATOMIC_NUMBER>89</ATOMIC_NUMBER>
<OXIDATION_STATES>3</OXIDATION_STATES>
<BOILING_POINT UNITS="Kelvin">3470</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">1324</MELTING_POINT>
<SYMBOL>Ac</SYMBOL>
<DENSITY_UNITS="grams/cubic centimeter"><!- At 300K ->
10.07
</DENSITY>
<ELECTRONEGATIVITY>1.1</ELECTRONEGATIVITY>
<ATOMIC_RADIUS UNITS="Angstroms">1.88</ATOMIC_RADIUS>
</ATOM>
</PERIODIC_TABLE>
XML 實用大全
第 531 頁
14.20 本章小結
在本章,學習了有關XSL 變換的內容。包括如下一些內容:
• 可擴展的樣式語言(Extensible Style Language,XSL)是由兩個獨立的XML 應用程序(分別用于轉換和格式化
XML 文檔)組成。
• XSL 轉換將規則應用于從XML 文檔中讀入的一個樹形結構中,以便將它轉換成一個以XML 文檔編寫的輸出樹形
結構中。
• XSL 模板規則是一個帶有match 特性的xsl:template 元素。輸入樹形結構中的節點與不同模板元素match 特性的
模式進行比較。當找到匹配時,即輸出模板的內容。
• 節點的值是含有節點內容的純文本(不是標記),可由xsl:value-of 元素獲得。
• 可以由兩種方法處理多個元素:xsl:apply-templates 元素和xsl:for-each 元素。
• xsl:template 元素的match 特性值是匹配模式,用以指定模板與哪個節點匹配。
• 選擇表達式為match 特性的超集,由xsl:apply-templates、xsl:value-of、xsl:for-each、xsl:copy-of、xsl:sort 以及
其他各種元素的select 特性所使用。
• 兩個缺省的規則將模板應用于元素節點,并取文本節點的值。
• xsl:element、xsl:attribute、xsl:pi、xsl:comment 和xsl:text 元素可輸出元素、特性、處理指令、注釋以及文本,
這些輸出結果都可以從輸入文檔中的數據進行運算獲得。
• xsl:attribute-set 元素定義常用的一組特性,從而使用xsl:use 元素,將這組特性用于不同模板中的多個元素。
• xsl:copy 元素將當前輸入節點復制到輸出文檔中。
• xsl:number 元素使用format 特性所給出的指定數字格式,將expr 特性中指定的數字插入到輸出文檔中。
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(149)