曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
<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()
軸或相對位置(前面或后面)不確定時同時使用兩者。用于MELTING_POINT 元素的必要模板規則如下所示:
<xsl:template match="MELTING_POINT">
<tr>
<td>
<xsl:value-of
XML 實用大全
第 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()函數對于輕松的打字工作來說過于冗長。XSL 還定義了縮寫句法,以便代替最常用的軸,在實
際過程中使用更廣。表14-3 顯示的是完整句法形式與縮寫詞的對等關系。
表14-3 選擇表達式的縮寫句法
縮寫詞 完整句法形式
. from-self(node())
.. from-parent(node())
Name from-children(name)
@name from-attributes(name)
// /from-descendants-or-self(node())/
XML 實用大全
第 483 頁
使用縮寫句法重寫清單14-11,得到清單14-12。但這兩個樣式單所獲得的輸出結果是完全一樣的。
清單14-12:使用縮寫句法獲得的熔點和原子序數對照表
<?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 實用大全
第 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>
匹配模式可以只使用縮寫句法(并非使用所有的縮寫句法)。對于選擇表達式,只能使用表14-2 中的from-axis()函數的
完整句法形式。
14.7.2 表達式類型
每個表達式都計算出唯一的值。例如,表達式3+2 運算值為5。上面所使用的表達式求出的都是節點集合。但是,在XSL 中,
有如下五種類型的表達式:
• 節點集合類型
• 布爾類型
• 數值類型
• 字符串類型
• 結果樹形片段
14.7.2.1 節點集合
XML 實用大全
第 485 頁
節點集合(node set)是輸入文檔的一組節點的列表。表14-2 中的from-axis()函數返回包含匹配節點的節點集合。哪些
節點處于某一函數返回的節點集合中,這要根據當前節點(也可以認為是上下文節點)、函數的參數而定,當然也依賴于它
是哪個函數。
習慣于面向對象語言(如Java 和C++)的程序員可能將當前節點看作為調用函數的對象;也就是說,在
a.doSomething(b, c)中,當前節點為a。但是,在XSL 中,當前節點總是明確的;也就是說,按照定義a 類的文
件所規定的形式,更可能寫成doSomething(b, c)形式。
例如當當前節點為例14-1 中的PERIODIC_TABLE 元素時,表達式select="from-children(ATOM)"返回的節點集合含有兩個
ATOM 元素。當上下文節點為例14-1 中的PERIODIC_TABLE 元素時,表達式
select="from-children(ATOM)/from-children(NAME)" 返回的節點集合含有<NAME> Hydrogen </NAME>和<NAME> Helium
</NAME>兩個元素節點。
上下文節點(context node)是上下文節點列表(context node list)的一個成員。上下文節點列表是同時都與同一個規
則相匹配的元素集合,通常是xsl:apply-templates 或xsl:for-each 調用的結果。例如,當清單14-12 應用于清單14-1
時,ATOM 模板調用兩次,第一次用于氫原子,第二次用于氦原子。第一次調用時,上下文節點就是氫的ATOM 元素。第二次
調用時,上下文節點就是氦的ATOM 元素。但是,在這兩次調用中,上下文節點列表則是包含氫和氦的ATOM 元素的集合。
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(136)