曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費(fèi)者
<xsl:value-of
select="from-parent(*)/from-children(NAME)"/>
</td>
<td>
<xsl:value-of
select="from-parent(*)/from-children(ATOMIC_NUMBER)"/>
</td>
<td>
<xsl:value-of select="from-self(*)"/>
<xsl:value-of select="from-attributes(UNITS)"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
這并不是解決這一問題的唯一方法。另外一種可能的方法是使用from-preceding-siblings()和from-following-siblings()
軸或相對位置(前面或后面)不確定時(shí)同時(shí)使用兩者。用于MELTING_POINT 元素的必要模板規(guī)則如下所示:
<xsl:template match="MELTING_POINT">
<tr>
<td>
<xsl:value-of
XML 實(shí)用大全
第 482 頁
select="from-preceding-siblings(NAME)
| from-following-siblings(NAME)"/>
</td>
<td>
<xsl:value-of
select="from-preceding-siblings(ATOMIC_NUMBER)
| from-following-siblings(ATOMIC_NUMBER)"/>
</td>
<td>
<xsl:value-of select="from-self(*)"/>
<xsl:value-of select="from-attributes(UNITS)"/>
</td>
</tr>
</xsl:template>
14.7.1.3 縮寫句法
表14-2 中的各種from-axis()函數(shù)對于輕松的打字工作來說過于冗長。XSL 還定義了縮寫句法,以便代替最常用的軸,在實(shí)
際過程中使用更廣。表14-3 顯示的是完整句法形式與縮寫詞的對等關(guān)系。
表14-3 選擇表達(dá)式的縮寫句法
縮寫詞 完整句法形式
. from-self(node())
.. from-parent(node())
Name from-children(name)
@name from-attributes(name)
// /from-descendants-or-self(node())/
XML 實(shí)用大全
第 483 頁
使用縮寫句法重寫清單14-11,得到清單14-12。但這兩個(gè)樣式單所獲得的輸出結(jié)果是完全一樣的。
清單14-12:使用縮寫句法獲得的熔點(diǎn)和原子序數(shù)對照表
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/I.O">
<xsl:template match="/PERIODIC_TABLE">
<html>
<body>
<hl>Atomic Number vs. Melting Point</hl>
<table>
<th>Element</th>
<th>Atomic Number</th>
<th>Melting Point</th>
<xsl:apply-templates select="ATOM"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="ATOM">
<xsl:apply-templates
select="MELTING_POINT"/>
</xsl:template>
<xsl:template match="MELTING_POINT">
<tr>
XML 實(shí)用大全
第 484 頁
<td>
<xsl:value-of
select="../NAME"/>
</td>
<td>
<xsl:value-of
select="../ATOMIC_NUMBER"/>
</td>
<td>
<xsl:value-of select="."/>
<xsl:value-of select="@UNITS"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
匹配模式可以只使用縮寫句法(并非使用所有的縮寫句法)。對于選擇表達(dá)式,只能使用表14-2 中的from-axis()函數(shù)的
完整句法形式。
14.7.2 表達(dá)式類型
每個(gè)表達(dá)式都計(jì)算出唯一的值。例如,表達(dá)式3+2 運(yùn)算值為5。上面所使用的表達(dá)式求出的都是節(jié)點(diǎn)集合。但是,在XSL 中,
有如下五種類型的表達(dá)式:
• 節(jié)點(diǎn)集合類型
• 布爾類型
• 數(shù)值類型
• 字符串類型
• 結(jié)果樹形片段
14.7.2.1 節(jié)點(diǎn)集合
XML 實(shí)用大全
第 485 頁
節(jié)點(diǎn)集合(node set)是輸入文檔的一組節(jié)點(diǎn)的列表。表14-2 中的from-axis()函數(shù)返回包含匹配節(jié)點(diǎn)的節(jié)點(diǎn)集合。哪些
節(jié)點(diǎn)處于某一函數(shù)返回的節(jié)點(diǎn)集合中,這要根據(jù)當(dāng)前節(jié)點(diǎn)(也可以認(rèn)為是上下文節(jié)點(diǎn))、函數(shù)的參數(shù)而定,當(dāng)然也依賴于它
是哪個(gè)函數(shù)。
習(xí)慣于面向?qū)ο笳Z言(如Java 和C++)的程序員可能將當(dāng)前節(jié)點(diǎn)看作為調(diào)用函數(shù)的對象;也就是說,在
a.doSomething(b, c)中,當(dāng)前節(jié)點(diǎn)為a。但是,在XSL 中,當(dāng)前節(jié)點(diǎn)總是明確的;也就是說,按照定義a 類的文
件所規(guī)定的形式,更可能寫成doSomething(b, c)形式。
例如當(dāng)當(dāng)前節(jié)點(diǎn)為例14-1 中的PERIODIC_TABLE 元素時(shí),表達(dá)式select="from-children(ATOM)"返回的節(jié)點(diǎn)集合含有兩個(gè)
ATOM 元素。當(dāng)上下文節(jié)點(diǎn)為例14-1 中的PERIODIC_TABLE 元素時(shí),表達(dá)式
select="from-children(ATOM)/from-children(NAME)" 返回的節(jié)點(diǎn)集合含有<NAME> Hydrogen </NAME>和<NAME> Helium
</NAME>兩個(gè)元素節(jié)點(diǎn)。
上下文節(jié)點(diǎn)(context node)是上下文節(jié)點(diǎn)列表(context node list)的一個(gè)成員。上下文節(jié)點(diǎn)列表是同時(shí)都與同一個(gè)規(guī)
則相匹配的元素集合,通常是xsl:apply-templates 或xsl:for-each 調(diào)用的結(jié)果。例如,當(dāng)清單14-12 應(yīng)用于清單14-1
時(shí),ATOM 模板調(diào)用兩次,第一次用于氫原子,第二次用于氦原子。第一次調(diào)用時(shí),上下文節(jié)點(diǎn)就是氫的ATOM 元素。第二次
調(diào)用時(shí),上下文節(jié)點(diǎn)就是氦的ATOM 元素。但是,在這兩次調(diào)用中,上下文節(jié)點(diǎn)列表則是包含氫和氦的ATOM 元素的集合。
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(136)