DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XSL系列函數詳解
XSL系列函數詳解
編輯:XML詳解     
本期介紹多個XSL對於VBScript、JScript增加的方法、屬性,以充分發揮XML的優勢,用於< xsl:script >、< xsl:eval >標記內表達式的編寫或< xsl:if >、< xsl:when >的eXPr屬性。

一、absoluteChildNumber 

含義:返回結點相對於它所有的兄弟(不論名字是否相同)的序號

語法:absoluteChildNumber(node)

參數:node ── 對象,欲返回編號的結點。

示例:

1、假定文檔結構為:< document >< head/ >< body/ >< /document >,其中document為頂層結點,下述表達式將輸出

< xsl:eval >

absoluteChildNumber(this.selectNodes("/document/body").item(0))

< /xsl:eval >

2、確定當前結點相對於其所有兄弟的序號

< xsl:eval >absoluteChildNumber(this)< /xsl:eval >

二、ancestorChildNumber

含義:從給定結點出發根據給定祖先結點名返回最近的祖先結點的序號(相對於同名結點)。如果找不祖先,則返回0。

語法:ancestorChildNumber(bstrNodeName, pNode)

參數:

bstrNodeName ── 字符串。被搜索的祖先結點的名字。

pNode ── 對象。搜索開始位置的結點。

示例:

查找當前結點最近的名為report祖先結點。

ancestorChildNumber("report",this)

三、attributes

含義:返回結點屬性的集合

語法:object.attributes

參數:object ── 結點對象

示例:

當前結點屬性的個數

this.attributes.length

當前結點第三個屬性的值

this.attributs.item(2).value

或this.attributes.item(2).text

或this.attributes(2).text

注意:如果給定的下標大於屬性總和減1將出錯,第一個屬性的下標是0。

四、baseName

含義:返回有名字空間限制的基本名,即不包括名字前綴

語法:object.baseName

參數:object ── 結點對象

示例:當前結點的基本名:this.baseName

五、childNumber

含義:返回結點相對於同名同胞的序號

語法:childNumber(object)

參數:object ─? 岬愣韻?/p> 

示例:假定XML文檔結構如下

< x >< y >< z >< z/ >< y/ >< /x >

如果當前結點是z ,則childNumber(this)返回1,而absoluteChildNumber(this)返回3。 

六、dataType

含義:設定或讀取結點的數據類型

語法:設定結點的數據類型 object.dataType=objvalue

讀取結點的數據類型 objvalue=object.dataType

參數:object ── 結點對象

示例:讀取當前結點的數據類型

dtType=this.dataType

七、depth

含義:指定結點出現在文檔樹上的深度,即該結點位於文檔第幾層,頂層結點位於

第一層,根結點(即用“/”表示的結點)位於第0層

語法:depth(pNode)

參數:pNode ── 結點對象

示例:當前結點的深度

depth(this)

八、firstChild、lastChild

含義:返回結點的第一個子結點(或最後一個子結點)。

語法:pNode.firstChild

pNode.lastChild

參數:pNode ── 結點對象

示例:當前結點的第一個結點的名字

this.firstChild.nodeName

九、formatIndex

含義:用指定的計數系統格式化提供的整數。

語法:formatIndex(lIndex, bstrFormat)

參數:

lIndex ── 整型數值或變量

bstrFormat ── 數據格式,可選值有a、A、i、I、1、01(以0打頭的數值形式,如果要求固定長度的編號如0001、0002則非常有用)

示例:當前結點的大寫羅馬數字編號

formatIndex(childNumber(this),"I")

十、formatNumber

含義:以指定格式輸出數值。

語法:formatNumber(dblNumber, bstrFormat)

參數:說明同formatNumber,不同之處在於格式化的可以是小數

示例:對變量a的值格式化為兩位小數 formatNumber(a,"#.00")

十一、hasChildNodes

含義:如果結點有子結點則返回true(-1),否則為false(0)

語法:pNode.hasChildNodes()

注意:與此前介紹的函數不同,此函數後必須帶一個空括號

示例:判斷當前結點是否有子結點

this.hasChildNodes

十二、namespaceURI、prefix

含義:返回結點名字空間的全局資源標識符(或前綴)

語法:pNode.namespaceURI

pNode.prifix

十三、nextSibling、previousSibling、parentNode

含義:返回結點的下一個兄弟(或前一個兄弟、或結點的父結點)

語法:pNode.nextSibling

pNode.previousSibling

pNode.parentNode

  注意:對根結點(即“/”)應用parentNode方法、對第一個孩子結點應用previousSibling方法、對最後一個孩子結點應用nextSibling方法均會導致錯誤,可通過此過關系運算符==(等於)和!=(不等於)來判斷一個結點是否某一指定結點,格式為pNode1 = pNode2或pNode2 != pNode2。

十四、nodeName

含義:返回元素、屬性、入口的名字或其他類型結點的一個特定字符串

語法:pNode.nodeName

示例:當前結點的名字

this.nodeName

十五、nodeType、NodeTypeString

含義:返回結點的類型的數值形式(或字符串形式)

語法:pNode.nodeType或pNode.nodeTypeString

返回值:

結點類型
結點類型編號 結點類型字符串

元素
1
"element"

元素屬性
2
"attribute"

Markup-Delimited Region of Text 
3
"text"

Processing InstrUCtion 
7
"processing_instruction"

Comment 
8
"comment"

Document Entity 
9
"document"


十六、nodeTypedvalue

含義:以結點預定義的數據類型返回結點的值

語法:pNode.nodeTypedvalue

示例:假定當前結點的數據類型是fixed.14.4,下例將以數值返回結點的值,而不是文本一個字符串

this.nodeTypedvalue

十七、nodevalue

含義:返回結點的文本

語法:pNode.nodevalue

注意:該方法不用於元素類結點,可用於屬性、CDATA、注釋、文本等結點

示例:當前元素第一個屬性的值

this.attributes(0).nodevalue

當前元素內的文本(假定該元素內只有文本,無其它元素,即< mark >text< /mark >,建議多嘗幾次掌握其確切的用法)

this.firstChild.nodevalue

十八、ownerDocument

含義:返回包含該結點的文檔的根

語法:pNode.ownerDocument

注意:該方法用於文檔的根結點將出錯

十九、selectNodes

含義:給定的樣式匹配應用於當前結點並返回匹配的結點集合

語法:pNode.selectNodes("pattern")

提示:pattern的編寫與< xsl:for-each >的select屬性的值類似,其中以“/”開頭表示

從文檔的根出發搜索;以“//”開頭表遍歷文檔的所有結點;以“..”開頭

表示從當前結點的父結點開始;如果欲從當前結點向下搜索則不能有以上特殊字符打頭。

示例:與當前結點同名的元素在其父元素內的個數

childNumber(this.selectNodes("../"+this.nodeName+"[end()]").item(0))

當前元素內名字為“skill”的元素的個數

childNumber(this.selectNodes("skill[end()]").item(0))

二十、selectSingleNode

含義:與selectNodes類似,不同的只返回匹配的第一個結點、而不是結點集合

語法:pNode.selectSingleNode("pattern")

示例:與當前結點同名的元素在其父元素內的個數

childNumber(this.selectSingleNode("../"+this.nodeName+"[end()]"))

當前元素內名字為“skill”的元素的個數

childNumber(this.selectSingleNode("skill[end()]"))

二十一、text

含義:返回結點與它的子樹內的文字內容

語法:pNode.text

示例:整個文檔內的文字內容

this.ownerDocument.text

當前元素及其子樹的文字內容

this.text

二十二、XML

含義:返回結點及其後代的XML表示

語法:pNode.XML

示例:當前文檔的XML內容

this.ownerDocument.XML

另有幾個函數不作介紹,列於其下以供參考,如感興趣,請訪問http://msdn.microsoft.com獲取詳細說明。

formatTime(varTime, bstrFormat,varDestLocale) 

formatDate(varDate, bstrFormat,varDestLocale)

apendChild(newChild)

definition

CloneNode

insertBefore(newChild, refChild)

parsed

removeChild(oldChild)

replaceChild(newChild, oldChild)

specifIEd

transformNode(stylesheet)

transformNodeToObject(stylesheet,outputObject) 

uniqueID(pNode)


 

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved