曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
表14-4 列舉了許多既可以作為參數(shù),也可以作為上下文節(jié)點對節(jié)點集合進行操作的函數(shù)。
表14-4 對節(jié)點集合進行操作的函數(shù)
函數(shù) 返回值類型 返回值
position() 數(shù)值 上下文節(jié)點列表中上下文節(jié)點的位置。列表中的第一個節(jié)
點其位置為1
last() 數(shù)值 上下文節(jié)點集合中的節(jié)點數(shù)
count(node-set) 數(shù)值 在node-set 參數(shù)指明的節(jié)點集合中的節(jié)點數(shù)
id(string) 節(jié)點集合 節(jié)點集合,其中只有一個元素(在同一個文檔的任何位置)
其ID 為string;或者空集合(如果任何元素都沒有指定
的ID)
idref(node-set) 節(jié)點集合 節(jié)點集合,包括文檔中的某些元素,其ID 屬性為在參數(shù)
node-set 中指明節(jié)點值中的(以空格分開)記號之一
key(string name,
string value)
節(jié)點集合 節(jié)點集合,包括文檔中所有具有指定值的關(guān)鍵字的節(jié)點。
關(guān)鍵字是使用頂層xsl:key 元素來設(shè)置的
keyref(string
name, node set
values)
節(jié)點集合 節(jié)點集合,包括文檔中所有具有某種關(guān)鍵字節(jié)點,此關(guān)鍵
字的值與第二個參數(shù)中的節(jié)點值相同
doc(string URI) 節(jié)點集合 文檔或由URI 引用的文檔部分中的節(jié)點集合;這些節(jié)點從
URI 使用的命名的anchor 標記或XPointer 中選擇如果
XML 實用大全
第 486 頁
沒有命名的anchor 標記或Xpointer,那么所指文檔的根
元素就存在于節(jié)點集合中。相對URI 是相對于輸入文檔中
的當前節(jié)點的
docref(node set) 節(jié)點集合 節(jié)點集合,包括由URI 引用的,其值為node set 參數(shù)的
所有節(jié)點
local-part(node
set)
字符串 node set 參數(shù)中第一個節(jié)點的本地部分(命名域前綴后
面的所有內(nèi)容);當不使用任何參數(shù)時可用于獲取上下文
節(jié)點的本地部分
namespace(node
set)
字符串 節(jié)點集合中第一個節(jié)點命名域的URI;當不使用任何參數(shù)
時,可用于獲得上下文節(jié)點的命名域URI;如果節(jié)點處于
缺省命名域內(nèi),則返回空字符
qname(node set) 字符串 node set 參數(shù)中第一個節(jié)點的合法名稱(可以為前綴和
本地部分);要獲得上下文節(jié)點的合法名稱,可不使用任
何參數(shù)
generate-id(node
set)
字符串 參數(shù)node set 中第一個節(jié)點的唯一標識符;不帶參數(shù)使
用時,可生成上下文節(jié)點的ID
第18 章“命名域”將討論命名域URI、前綴和本地部分。
doc()和docref()函數(shù)有點模糊,特別是如果URI 只引用非結(jié)構(gòu)完整的XML 節(jié)點或數(shù)據(jù)片段,就更是如此。細節(jié)還
要留待XSL 規(guī)范的未來版本加以澄清。
如果向這些函數(shù)傳遞了一個錯誤類型的參數(shù),那么XSL 試圖將此參數(shù)轉(zhuǎn)變成正確的類型;例如,將數(shù)字12 轉(zhuǎn)變成字符串
“12”。但是,任何參數(shù)都不能轉(zhuǎn)變成節(jié)點集合。
position()函數(shù)可用來對元素進行計數(shù)。清單14-13 是一個樣式單,它使用<xsl:value-of select = "position"/>,將元
素在文檔中的位置作為原子名的名稱的前綴。
清單14-13:按照文檔中的順序?qū)υ舆M行編號的樣式單
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="/PFRIODIC_TABLE">
XML 實用大全
第 487 頁
<HTML>
<HEAD><TITLE>The Elements</TITLE></HEAD>
<BODY>
<xsl:apply-templates select="ATOM"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="ATOM">
<P>
<xsl:value-of select="position()"/>.
<xsl:value-of select="NAME"/>
</P>
</xsl:template>
</xsl:stylesheet>
將此樣式單應用于清單14-1 時,其輸出結(jié)果如下:
<HTML><HEAD><TITLE>The Elements</TITLE></HEAD><BODY><P>1.
Hydrogen</P><P>2.
Helium</P></BODY></HTML>
14.7.2.2 布爾類型
布爾值為兩個值之一:true(真)或false(假)。XSL 允許將任何類型的數(shù)據(jù)轉(zhuǎn)變成布爾值。當在可望為布爾值的地方使
用了字符串或數(shù)值或節(jié)點集合時,通常就暗示需要這樣做,xsl:if 元素的test 特性中正是這樣情況。根據(jù)下列這些規(guī)則,
也可以使用boolean()函數(shù)來完成這種變換過程,此函數(shù)將任何類型(或如果不提供參數(shù)即為上下文節(jié)點)的參數(shù)轉(zhuǎn)變成布
爾值:
• 如果數(shù)值為零或NaN(一種特定的符號,意為Not a Number,即不是數(shù)字,用于表示被零除所獲得的結(jié)果以及類似
的非法操作),則此值為false,否則為true
• 空節(jié)點集合為false;所有的其他節(jié)點集合為true
• 空結(jié)果片段為false;所有其他結(jié)果片段都為true
• 零長度字符串為false;所有其他字符串為true
XML 實用大全
第 488 頁
使用下列操作符所獲得的表達式的結(jié)果也可以得到布爾值:
= 等于號
< 小于號(實際使用<)
> 大于號
< = 小于等于(實際使用<=)
> = 大于等于
在特性值中<符號是非法的。因此,必須用<來代替,甚至作為小于運算符時也是如此。
這些運算符最常用于判斷是否調(diào)用某個規(guī)則。選擇表達式不僅含有選擇某些節(jié)點的模式,而且還可以含有判斷條件,從而使
用此判斷條件對所選的節(jié)點列表進一步篩選。例如,from-children(ATOM)選擇當前節(jié)點的所有ATOM 子節(jié)點。但是,
from-children(ATOME[position()=1])只選擇當前節(jié)點的第一個ATOM 子節(jié)點。[position()=1]為一判斷語句,它在節(jié)點上
測試ATOM,返回一個布爾結(jié)果值,如果當前節(jié)點的位置等于1,則返回的結(jié)果為true,否則為false。對每個節(jié)點的測試都
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(137)