XSL語言的三種模式.docx_第1頁
XSL語言的三種模式.docx_第2頁
XSL語言的三種模式.docx_第3頁
XSL語言的三種模式.docx_第4頁
XSL語言的三種模式.docx_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

XSL語言的三種模式:選擇模式:、和 l 選擇節(jié)點語法:屬性:1. select:選擇器。XML文檔中需要選擇出來的節(jié)點,可以是節(jié)點與子節(jié)點的結(jié)合, 表示方式節(jié)點/子節(jié)點。2. Order-by:排序列表。以分號(;)分隔、作為排序標(biāo)準(zhǔn)的列表。在列表元素前添加加號(+)表示按此標(biāo)記的內(nèi)容以升序排序,添加減號(-)表示逆序排序。作為一種簡化的表示就是,排序標(biāo)準(zhǔn)列表就是由select規(guī)定的標(biāo)記的子標(biāo)記的序列,每個標(biāo)記之間以(;)分隔。l 提前節(jié)點的值語法:屬性:select用來與當(dāng)前上下文匹配的XSL式樣。l 語法:屬性:match 確定什么樣的情況下執(zhí)行此模板。作為一種簡化的說明,在此處使用標(biāo)記的名字;其中最上層模板必須將match設(shè)為/。 language 確定在此模板中執(zhí)行什么腳本語言,其取值與HTML中的SCRIPT標(biāo)記的LANGUAGE屬性的取值相同,缺省值是Jscript。語法:屬性:select 確定在此上下文環(huán)境中應(yīng)執(zhí)行什么模板,即選取用標(biāo)記建立的模板(塊)。 order-by 以分號(;)分隔的排序標(biāo)準(zhǔn),通常是子標(biāo)記的序列。測試模式:和l 語法:屬性:expr 腳本語言表達(dá)式,計算結(jié)果為真或假;如果結(jié)果為真,且通過test,則在輸出中顯示其中內(nèi)容(可省略此項屬性)。 language expr屬性中表達(dá)式的腳本語言類型,其取值與HTML標(biāo)記SCRIPT的LANGUAGE屬性的取值相同,缺省為JScript。 test 源數(shù)據(jù)測試條件。例子:test=.value()$le$20解釋:$le$是關(guān)系運算符中的小于等于,其它關(guān)系有小于($lt$)、大于($gt$)、大于等于($ge$)、等于($eq$)、不等于($ne$)等。 . 表示引用當(dāng)前標(biāo)記。 表示篩選,只有滿足篩選條件的標(biāo)記才能被選取。 value() XSL函數(shù),其他常用XSL函數(shù)有text()、end()、index()等。l 語法:屬性:無,表示一個或者多個篩選的開始。語法:屬性:expr 腳本語言表達(dá)式,計算結(jié)果為真或假;如果結(jié)果為真,且通過test,則在輸出中顯示其中內(nèi)容(可省略此項屬性)。language expr屬性中表達(dá)式的腳本語言類型,其取值與HTML標(biāo)記SCRIPT的LANGUAGE屬性的取值相同,缺省為JScript。test 源數(shù)據(jù)測試條件。語法:屬性:無,在一個多選測試中,如果沒有不滿足規(guī)定的條件,如果在最后有此標(biāo)記,則輸出此標(biāo)記中的內(nèi)容。匹配模式:表一、運算符與特殊字符運算符描述/選擇子元素,返回左側(cè)元素的直接子元素;如果/位于最左側(cè)表示選擇根結(jié)點的直接子元素/遞歸下降,不論深度,搜索指定的元素;如果位于最左側(cè)表示從根結(jié)點出發(fā)遞歸下降搜索指定元素.表示當(dāng)前元素*通配符,選擇任意元素,不考慮名字取得屬性值,作為屬性名的前綴*通配符,選擇任意屬性,不考慮名字:名字作用范圍分隔符,將名字作用范圍前綴與元素或?qū)傩悦指糸_來!*在相關(guān)節(jié)點上應(yīng)用指定方法()*分組,明確指定優(yōu)先順序應(yīng)用過濾樣式*下標(biāo)運算符,用于在集合中指示元素表二、邏輯運算符可選方式描述and $and$ 或 &邏輯與or $or$ 或 |邏輯或not() $not$邏輯非表三、關(guān)系運算符可選方式描述= 或 $eq$相等= 或 $ieq$相等(不區(qū)分大小寫)!= 或 $ne$不等$ine$不等(不區(qū)分大小寫) 或 $lt$小于$ilt$小于(不區(qū)分大小寫) 或 $gt$大于$igt$大于(不區(qū)分大小寫)= 或 $ge$大于等于$ige$大于等于(不區(qū)分大小寫)$all$集合運算符,如果集合中所有項目均滿足條件則返回真$any$集合運算符,如果集合中任意項目滿足條件則返回真|集合運算符,返回兩個集合的聯(lián)合本期介紹多個XSL對于VBScript、JScript增加的方法、屬性,以充分發(fā)揮XML的優(yōu)勢,用于、標(biāo)記內(nèi)表達(dá)式的編寫或、的expr屬性。一、absoluteChildNumber含義:返回結(jié)點相對于它所有的兄弟(不論名字是否相同)的序號。語法:absoluteChildNumber(node)參數(shù):node 對象,欲返回編號的結(jié)點。示例:1、假定文檔結(jié)構(gòu)為:,其中document為頂層結(jié)點,下述表達(dá)式將輸出:absoluteChildNumber(this.selectNodes(/document/body).item(0)2、確定當(dāng)前結(jié)點相對于其所有兄弟的序號:absoluteChildNumber(this)二、ancestorChildNumber含義:從給定結(jié)點出發(fā)根據(jù)給定祖先結(jié)點名返回最近的祖先結(jié)點的序號(相對于同名結(jié)點)。如果找不祖先,則返回0。語法:ancestorChildNumber(bstrNodeName, pNode)參數(shù):bstrNodeName 字符串。被搜索的祖先結(jié)點的名字。pNode 對象。搜索開始位置的結(jié)點。示例查找當(dāng)前結(jié)點最近的名為report祖先結(jié)點:ancestorChildNumber(report,this)三、attributes含義:返回結(jié)點屬性的集合。語法:object.attributes參數(shù):object 結(jié)點對象。示例:當(dāng)前結(jié)點屬性的個數(shù)this.attributes.length當(dāng)前結(jié)點第三個屬性的值this.attributs.item(2).value或this.attributes.item(2).text或this.attributes(2).text注意:如果給定的下標(biāo)大于屬性總和減1將出錯,第一個屬性的下標(biāo)是0。四、baseName含義:返回有名字空間限制的基本名,即不包括名字前綴。語法:object.baseName參數(shù):object 結(jié)點對象示例,當(dāng)前結(jié)點的基本名:this.baseName五、childNumber含義:返回結(jié)點相對于同名同胞的序號。語法:childNumber(object)參數(shù):object 結(jié)點對象示例,假定XML文檔結(jié)構(gòu)如下:如果當(dāng)前結(jié)點是z,則childNumber(this)返回1,而absoluteChildNumber(this)返回3。六、dataType含義:設(shè)定或讀取結(jié)點的數(shù)據(jù)類型。語法:設(shè)定結(jié)點的數(shù)據(jù)類型 object.dataType=objValue讀取結(jié)點的數(shù)據(jù)類型 objValue=object.dataType參數(shù):object 結(jié)點對象。示例,讀取當(dāng)前結(jié)點的數(shù)據(jù)類型:dtType=this.dataType七、depth含義:指定結(jié)點出現(xiàn)在文檔樹上的深度,即該結(jié)點位于文檔第幾層,頂層結(jié)點位于第一層,根結(jié)點(即用/表示的結(jié)點)位于第0層。語法:depth(pNode)參數(shù):pNode 結(jié)點對象示例,當(dāng)前結(jié)點的深度:depth(this)八、firstChild、lastChild含義:返回結(jié)點的第一個子結(jié)點(或最后一個子結(jié)點)。語法:pNode.firstChildpNode.lastChild參數(shù):pNode 結(jié)點對象示例,當(dāng)前結(jié)點的第一個結(jié)點的名字:this.firstChild.nodeName九、formatIndex含義:用指定的計數(shù)系統(tǒng)格式化提供的整數(shù)。語法:formatIndex(lIndex, bstrFormat)參數(shù):lIndex 整型數(shù)值或變量bstrFormat 數(shù)據(jù)格式,可選值有a、A、i、I、1、01(以0打頭的數(shù)值形式,如果要求固定長度的編號如0001、0002則非常有用)。示例,當(dāng)前結(jié)點的大寫羅馬數(shù)字編號:formatIndex(childNumber(this),I)十、formatNumber含義:以指定格式輸出數(shù)值。語法:formatNumber(dblNumber, bstrFormat)參數(shù):說明同formatNumber,不同之處在于格式化的可以是小數(shù)。示例,對變量a的值格式化為兩位小數(shù):formatNumber(a,#.00):十一、hasChildNodes含義:如果結(jié)點有子結(jié)點則返回true(-1),否則為false(0)。語法:pNode.hasChildNodes()注意:與此前介紹的函數(shù)不同,此函數(shù)后必須帶一個空括號。示例,判斷當(dāng)前結(jié)點是否有子結(jié)點:this.hasChildNodes十二、namespaceURI、prefix含義:返回結(jié)點名字空間的全局資源標(biāo)識符(或前綴)。語法:pNspaceURIpNode.prifix十三、nextSibling、previousSibling、parentNode含義:返回結(jié)點的下一個兄弟(或前一個兄弟、或結(jié)點的父結(jié)點)。語法:pNode.nextSiblingpNode.previousSiblingpNode.parentNode注意:對根結(jié)點(即/)應(yīng)用parentNode方法、對第一個孩子結(jié)點應(yīng)用previousSibling方法、對最后一個孩子結(jié)點應(yīng)用nextSibling方法均會導(dǎo)致錯誤,可通過此過關(guān)系運算符=(等于)和!=(不等于)來判斷一個結(jié)點是否某一指定結(jié)點,格式為pNode1 = pNode2或pNode2 != pNode2。十四、nodeName含義:返回元素、屬性、入口的名字或其他類型結(jié)點的一個特定字符串。語法:pNode.nodeName示例,當(dāng)前結(jié)點的名字:this.nodeName十五、nodeType、NodeTypeString含義:返回結(jié)點的類型的數(shù)值形式(或字符串形式)。語法:pNode.nodeType 或 pNode.nodeTypeString返回值:結(jié)點類型結(jié)點類型值結(jié)點的字符形式描述Element1elementElement Attribute2attributeMarkup-Delimited Region of Text3textProcessing Instruction7processing_instructionComment8commentDocument Entity9document十六、nodeTypedValue含義:以結(jié)點預(yù)定義的數(shù)據(jù)類型返回結(jié)點的值。語法:pNode.nodeTypedValue示例,假定當(dāng)前結(jié)點的數(shù)據(jù)類型是fixed.14.4,下例將以數(shù)值返回結(jié)點的值,而不是文本一個字符串:this.nodeTypedValue十七、nodeValue含義:返回結(jié)點的文本。語法:pNode.nodeValue注意:該方法不用于元素類結(jié)點,可用于屬性、CDATA、注釋、文本等結(jié)點。示例,當(dāng)前元素第一個屬性的值:this.attributes(0).nodeValue當(dāng)前元素內(nèi)的文本(假定該元素內(nèi)只有文本,無其它元素,即text,建議多嘗幾次掌握其確切的用法)。this.firstChild.nodeValue十八、ownerDocument含義:返回包含該結(jié)點的文檔的根。語法:pNode.ownerDocument注意:該方法用于文檔的根結(jié)點將出錯。十九、selectNodes含義:給定的樣式匹配應(yīng)用于當(dāng)前結(jié)點并返回匹配的結(jié)點集合。語法:pNode.selectNodes(pattern)提示:pattern的編寫與的select屬性的值類似,其中以/開頭表示從文檔的根出發(fā)搜索;以/開頭表遍歷文檔的所有結(jié)點;以.開頭表示從當(dāng)前結(jié)點的父結(jié)點開始;如果欲從當(dāng)前結(jié)點向下搜索則不能有以上特殊字符打頭。示例,與當(dāng)前結(jié)點同名的元素在其父元素內(nèi)的個數(shù):childNumber(this.selectNodes(./+this.nodeName+end().item(0)當(dāng)前元素內(nèi)名字為skill的元素的個數(shù):childNumber(this.selectNodes(skillend().item(0)二十、selectSingleNode含義:與selectNodes類似,不同的只返回匹配的第一個結(jié)點、而不是結(jié)點集合。語法:pNode.selectSingleNode(pattern)示例,與當(dāng)前結(jié)點同名的元素在其父元素內(nèi)的個數(shù):childNumber(this.selectSingleNode(./+this.nodeName+end()當(dāng)前元素內(nèi)名字為skill的元素的個數(shù):childNumber(this.selectSingleNode(skillend()二十一、text含義:返回結(jié)點與它的子樹內(nèi)的文字內(nèi)容。語法:pNode.text示例,整個文檔內(nèi)的文字內(nèi)容:this.ownerDocument.text當(dāng)前元素及其子樹的文字內(nèi)容:this.text二十二、xml含義:返回結(jié)點及其后代的XML表示。語法:pNode.xml示例,當(dāng)前文檔的XML內(nèi)容:this.ownerDocument.xml另有幾個函數(shù)不作介紹,列于其下以供參考,如感興趣,請訪問獲取詳細(xì)說明。formatTime(varTime, bstrFormat,va

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論