曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費(fèi)者
根元素中的頂級(jí)元素中。例如,下面的這些xsl:import 元素導(dǎo)入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>
導(dǎo)入的樣式單中的規(guī)則可能與執(zhí)行導(dǎo)入的樣式單中的規(guī)則發(fā)生沖突。如果真是這樣,那么執(zhí)行導(dǎo)入的樣式單中的規(guī)則優(yōu)先。
如果不同的被導(dǎo)入樣式單中的兩個(gè)規(guī)則發(fā)生沖突,那么最后那個(gè)被導(dǎo)入的(如上面例子中的standards.xsl)優(yōu)先。
xsl:apply-imports 元素與xsl:apply-templates 有點(diǎn)差別,后者只使用被導(dǎo)入的規(guī)則。xsl:apply-imports 元素不使用執(zhí)
行導(dǎo)入的樣式單中的任何規(guī)則。這樣就可以訪問被導(dǎo)入的規(guī)則,否則被導(dǎo)入的規(guī)則就會(huì)被執(zhí)行導(dǎo)入的樣式單中的規(guī)則所覆蓋。
除了名稱不同外,xsl:apply-imports 與xsl:apply-templates 有一樣的句法,唯一的作用方式差別是它只與被導(dǎo)入樣式單
中的模板規(guī)則匹配。
14.19.2 使用xsl:include 進(jìn)行包括
xsl:include 元素也是頂級(jí)元素,它將另一個(gè)樣式單復(fù)制到當(dāng)前樣式單中它所出現(xiàn)的位置處(更確切是說,它將遠(yuǎn)程文檔中
xsl-stylesheet 元素的內(nèi)容復(fù)制到當(dāng)前文檔中)。它的href 特性提供要包括的樣式單的URI。xsl:include 元素可放在頂
級(jí)處于最后那個(gè)xsl:import 元素之后的任何地方。
不像xsl: imporlt 元素所包括的規(guī)則那樣,xsl:include 元素所包括的規(guī)則與執(zhí)行包括的樣式單中的規(guī)則具有同樣的優(yōu)先
級(jí),利用這種優(yōu)先級(jí)關(guān)系來決定是否從一個(gè)樣式單到另一個(gè)樣式單的復(fù)制和粘貼。對(duì)于格式化引擎來說,被包括的規(guī)則與實(shí)
際存在的規(guī)則之間沒有任何區(qū)別。
14.19.3 使用xsl:stylesheet 在文檔中嵌入樣式單
可直接將XSL 樣式單包括在使用它的XML 文檔中。實(shí)際上,我不推薦這種方法,而且瀏覽器和格式化引擎也不一定支持這一
作法。但是,有幾個(gè)瀏覽器和格式化引擎卻支持這一作法。為達(dá)此目的,xsl:stylesheet 元素必須以文檔元素的子元素而
不是根元素本身的形式出現(xiàn)。它可能有一個(gè)id 特性,用來為其取唯一的名稱,此id 特性是作為xsl:stylesheet 處理指令
中的href 特性值的形式出現(xiàn)的,緊跟在的anchor(錨)標(biāo)識(shí)符(#)之后。清單14-20 演示此過程:
XML 實(shí)用大全
第 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 實(shí)用大全
第 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 實(shí)用大全
第 531 頁
14.20 本章小結(jié)
在本章,學(xué)習(xí)了有關(guān)XSL 變換的內(nèi)容。包括如下一些內(nèi)容:
• 可擴(kuò)展的樣式語言(Extensible Style Language,XSL)是由兩個(gè)獨(dú)立的XML 應(yīng)用程序(分別用于轉(zhuǎn)換和格式化
XML 文檔)組成。
• XSL 轉(zhuǎn)換將規(guī)則應(yīng)用于從XML 文檔中讀入的一個(gè)樹形結(jié)構(gòu)中,以便將它轉(zhuǎn)換成一個(gè)以XML 文檔編寫的輸出樹形
結(jié)構(gòu)中。
• XSL 模板規(guī)則是一個(gè)帶有match 特性的xsl:template 元素。輸入樹形結(jié)構(gòu)中的節(jié)點(diǎn)與不同模板元素match 特性的
模式進(jìn)行比較。當(dāng)找到匹配時(shí),即輸出模板的內(nèi)容。
• 節(jié)點(diǎn)的值是含有節(jié)點(diǎn)內(nèi)容的純文本(不是標(biāo)記),可由xsl:value-of 元素獲得。
• 可以由兩種方法處理多個(gè)元素:xsl:apply-templates 元素和xsl:for-each 元素。
• xsl:template 元素的match 特性值是匹配模式,用以指定模板與哪個(gè)節(jié)點(diǎn)匹配。
• 選擇表達(dá)式為match 特性的超集,由xsl:apply-templates、xsl:value-of、xsl:for-each、xsl:copy-of、xsl:sort 以及
其他各種元素的select 特性所使用。
• 兩個(gè)缺省的規(guī)則將模板應(yīng)用于元素節(jié)點(diǎn),并取文本節(jié)點(diǎn)的值。
• xsl:element、xsl:attribute、xsl:pi、xsl:comment 和xsl:text 元素可輸出元素、特性、處理指令、注釋以及文本,
這些輸出結(jié)果都可以從輸入文檔中的數(shù)據(jù)進(jìn)行運(yùn)算獲得。
• xsl:attribute-set 元素定義常用的一組特性,從而使用xsl:use 元素,將這組特性用于不同模板中的多個(gè)元素。
• xsl:copy 元素將當(dāng)前輸入節(jié)點(diǎn)復(fù)制到輸出文檔中。
• xsl:number 元素使用format 特性所給出的指定數(shù)字格式,將expr 特性中指定的數(shù)字插入到輸出文檔中。
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(149)