<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-72  評論-63  文章-0  trackbacks-0
    xsl
    http://m.tkk7.com/rickhunter/articles/59742.html
    http://www.blueidea.com/tech/web/2004/1798_4.asp

     本期介紹多個(gè)XSL對于VBScript、JScript增加的方法、屬性,以充分發(fā)揮XML的優(yōu)勢,用于<xsl:script>、<xsl:eval>標(biāo)記內(nèi)表達(dá)式的編寫或<xsl:if>、<xsl:when>的expr屬性。

      一、absoluteChildNumber

      含義:返回結(jié)點(diǎn)相對于它所有的兄弟(不論名字是否相同)的序號。

      語法:absoluteChildNumber(node)

      參數(shù):node ── 對象,欲返回編號的結(jié)點(diǎn)。

      示例:

      1、假定文檔結(jié)構(gòu)為:<document><head/><body/></document>,其中document為頂層結(jié)點(diǎn),下述表達(dá)式將輸出:

    <xsl:eval>
    absoluteChildNumber(this.selectNodes('/document/body').item(0))
    </xsl:eval>

      2、確定當(dāng)前結(jié)點(diǎn)相對于其所有兄弟的序號:

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

      二、ancestorChildNumber

      含義:從給定結(jié)點(diǎn)出發(fā)根據(jù)給定祖先結(jié)點(diǎn)名返回最近的祖先結(jié)點(diǎn)的序號(相對于同名結(jié)點(diǎn))。如果找不祖先,則返回0。

      語法:ancestorChildNumber(bstrNodeName, pNode)

      參數(shù):

      bstrNodeName ── 字符串。被搜索的祖先結(jié)點(diǎn)的名字。

      pNode ── 對象。搜索開始位置的結(jié)點(diǎn)。

      示例查找當(dāng)前結(jié)點(diǎn)最近的名為report祖先結(jié)點(diǎn):

    ancestorChildNumber('report',this)

      三、attributes

      含義:返回結(jié)點(diǎn)屬性的集合。

      語法:object.attributes

      參數(shù):object ── 結(jié)點(diǎn)對象。

      示例:當(dāng)前結(jié)點(diǎn)屬性的個(gè)數(shù)

    this.attributes.length

      當(dāng)前結(jié)點(diǎn)第三個(gè)屬性的值

    this.attributs.item(2).value



    this.attributes.item(2).text



    this.attributes(2).text

      注意:如果給定的下標(biāo)大于屬性總和減1將出錯(cuò),第一個(gè)屬性的下標(biāo)是0。

      四、baseName

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

      語法:object.baseName

      參數(shù):object ── 結(jié)點(diǎn)對象

      示例,當(dāng)前結(jié)點(diǎn)的基本名:

    this.baseName

      五、childNumber

      含義:返回結(jié)點(diǎn)相對于同名同胞的序號。

      語法:childNumber(object)

      參數(shù):object ── 結(jié)點(diǎn)對象

      示例,假定XML文檔結(jié)構(gòu)如下:

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

      如果當(dāng)前結(jié)點(diǎn)是z,則childNumber(this)返回1,而absoluteChildNumber(this)返回3。

      六、dataType

      含義:設(shè)定或讀取結(jié)點(diǎn)的數(shù)據(jù)類型。

      語法:設(shè)定結(jié)點(diǎn)的數(shù)據(jù)類型 object.dataType=objValue
         讀取結(jié)點(diǎn)的數(shù)據(jù)類型 objValue=object.dataType

      參數(shù):object ── 結(jié)點(diǎn)對象。

      示例,讀取當(dāng)前結(jié)點(diǎn)的數(shù)據(jù)類型:

    dtType=this.dataType

      七、depth

      含義:指定結(jié)點(diǎn)出現(xiàn)在文檔樹上的深度,即該結(jié)點(diǎn)位于文檔第幾層,頂層結(jié)點(diǎn)位于第一層,根結(jié)點(diǎn)(即用"/"表示的結(jié)點(diǎn))位于第0層。

      語法:depth(pNode)

      參數(shù):pNode ── 結(jié)點(diǎn)對象

      示例,當(dāng)前結(jié)點(diǎn)的深度:

    depth(this)

      八、firstChild、lastChild

      含義:返回結(jié)點(diǎn)的第一個(gè)子結(jié)點(diǎn)(或最后一個(gè)子結(jié)點(diǎn))。

      語法:pNode.firstChild
         pNode.lastChild

      參數(shù):pNode ── 結(jié)點(diǎn)對象

      示例,當(dāng)前結(jié)點(diǎn)的第一個(gè)結(jié)點(diǎn)的名字:

    this.firstChild.nodeName

      九、formatIndex

      含義:用指定的計(jì)數(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é)點(diǎn)的大寫羅馬數(shù)字編號:

    formatIndex(childNumber(this),'I')

      十、formatNumber

      含義:以指定格式輸出數(shù)值。

      語法:formatNumber(dblNumber, bstrFormat)

      參數(shù):說明同formatNumber,不同之處在于格式化的可以是小數(shù)。

      示例,對變量a的值格式化為兩位小數(shù):

    formatNumber(a,'#.00'):

      十一、hasChildNodes

      含義:如果結(jié)點(diǎn)有子結(jié)點(diǎn)則返回true(-1),否則為false(0)。

      語法:pNode.hasChildNodes()

      注意:與此前介紹的函數(shù)不同,此函數(shù)后必須帶一個(gè)空括號。

      示例,判斷當(dāng)前結(jié)點(diǎn)是否有子結(jié)點(diǎn):

    this.hasChildNodes

      十二、namespaceURI、prefix

      含義:返回結(jié)點(diǎn)名字空間的全局資源標(biāo)識符(或前綴)。

      語法:pNode.namespaceURI
         pNode.prifix

      十三、nextSibling、previousSibling、parentNode

      含義:返回結(jié)點(diǎn)的下一個(gè)兄弟(或前一個(gè)兄弟、或結(jié)點(diǎn)的父結(jié)點(diǎn))。

      語法:pNode.nextSibling
         pNode.previousSibling
         pNode.parentNode

      注意:對根結(jié)點(diǎn)(即"/")應(yīng)用parentNode方法、對第一個(gè)孩子結(jié)點(diǎn)應(yīng)用previousSibling方法、對最后一個(gè)孩子結(jié)點(diǎn)應(yīng)用nextSibling方法均會(huì)導(dǎo)致錯(cuò)誤,可通過此過關(guān)系運(yùn)算符==(等于)和!=(不等于)來判斷一個(gè)結(jié)點(diǎn)是否某一指定結(jié)點(diǎn),格式為pNode1 = pNode2或pNode2 != pNode2。

      十四、nodeName

      含義:返回元素、屬性、入口的名字或其他類型結(jié)點(diǎn)的一個(gè)特定字符串。

      語法:pNode.nodeName

      示例,當(dāng)前結(jié)點(diǎn)的名字:

    this.nodeName

      十五、nodeType、NodeTypeString

      含義:返回結(jié)點(diǎn)的類型的數(shù)值形式(或字符串形式)。

      語法:pNode.nodeType 或 pNode.nodeTypeString

      返回值:

    ?結(jié)點(diǎn)類型?結(jié)點(diǎn)類型值?結(jié)點(diǎn)的字符形式描述
    ?Element?1?'element'
    ?Element Attribute?2?'attribute'
    ?Markup-Delimited Region of Text?3?'text'
    ?Processing Instruction?7?'processing_instruction'
    ?Comment?8?'comment'
    ?Document Entity?9?'document'

      十六、nodeTypedValue

      含義:以結(jié)點(diǎn)預(yù)定義的數(shù)據(jù)類型返回結(jié)點(diǎn)的值。

      語法:pNode.nodeTypedValue

      示例,假定當(dāng)前結(jié)點(diǎn)的數(shù)據(jù)類型是fixed.14.4,下例將以數(shù)值返回結(jié)點(diǎn)的值,而不是文本一個(gè)字符串:

    this.nodeTypedValue

      十七、nodeValue

      含義:返回結(jié)點(diǎn)的文本。

      語法:pNode.nodeValue

      注意:該方法不用于元素類結(jié)點(diǎn),可用于屬性、CDATA、注釋、文本等結(jié)點(diǎn)。

      示例,當(dāng)前元素第一個(gè)屬性的值:

    this.attributes(0).nodeValue

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

    this.firstChild.nodeValue

      十八、ownerDocument

      含義:返回包含該結(jié)點(diǎn)的文檔的根。

      語法:pNode.ownerDocument

      注意:該方法用于文檔的根結(jié)點(diǎn)將出錯(cuò)。

      十九、selectNodes

      含義:給定的樣式匹配應(yīng)用于當(dāng)前結(jié)點(diǎn)并返回匹配的結(jié)點(diǎn)集合。

      語法:pNode.selectNodes('pattern')

      提示:pattern的編寫與<xsl:for-each>的select屬性的值類似,其中以"/"開頭表示從文檔的根出發(fā)搜索;以"http://"開頭表遍歷文檔的所有結(jié)點(diǎn);以".."開頭表示從當(dāng)前結(jié)點(diǎn)的父結(jié)點(diǎn)開始;如果欲從當(dāng)前結(jié)點(diǎn)向下搜索則不能有以上特殊字符打頭。

      示例,與當(dāng)前結(jié)點(diǎn)同名的元素在其父元素內(nèi)的個(gè)數(shù):

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

      當(dāng)前元素內(nèi)名字為"skill"的元素的個(gè)數(shù):

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

      二十、selectSingleNode

      含義:與selectNodes類似,不同的只返回匹配的第一個(gè)結(jié)點(diǎn)、而不是結(jié)點(diǎn)集合。

      語法:pNode.selectSingleNode('pattern')

      示例,與當(dāng)前結(jié)點(diǎn)同名的元素在其父元素內(nèi)的個(gè)數(shù):

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

      當(dāng)前元素內(nèi)名字為"skill"的元素的個(gè)數(shù):

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

      二十一、text

      含義:返回結(jié)點(diǎn)與它的子樹內(nèi)的文字內(nèi)容。

      語法:pNode.text

      示例,整個(gè)文檔內(nèi)的文字內(nèi)容:

    this.ownerDocument.text

      當(dāng)前元素及其子樹的文字內(nèi)容:

    this.text

      二十二、xml

      含義:返回結(jié)點(diǎn)及其后代的XML表示。

      語法:pNode.xml

      示例,當(dāng)前文檔的XML內(nèi)容:

    this.ownerDocument.xml

      另有幾個(gè)函數(shù)不作介紹,列于其下以供參考,如感興趣,請?jiān)L問http://msdn.microsoft.com獲取詳細(xì)說明。

    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)

    posted on 2006-07-30 14:57 船長 閱讀(727) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 伊人久久免费视频| 免费人成网上在线观看| 91热久久免费精品99| 亚洲综合另类小说色区| 精品在线观看免费| 午夜国产大片免费观看| 国产亚洲成在线播放va| 免费又黄又爽又猛的毛片| 美女视频黄a视频全免费网站色| 国产麻豆剧传媒精品国产免费| 亚洲国产精品嫩草影院| 日韩免费a级在线观看| 国产AV无码专区亚洲AV麻豆丫| 大香人蕉免费视频75| 国产亚洲福利一区二区免费看| 国产精品无码一区二区三区免费 | 最近2019中文字幕免费大全5| 亚洲精品一卡2卡3卡三卡四卡| 久久久久久精品免费免费自慰| 亚洲国产精品成人精品软件| 日韩欧美一区二区三区免费观看 | 久久亚洲精品无码aⅴ大香| 蜜桃成人无码区免费视频网站 | 成人免费黄色网址| 亚洲中文字幕久久无码| 免费a在线观看播放| a级毛片免费高清毛片视频| 337p日本欧洲亚洲大胆精品555588| 91黑丝国产线观看免费| 国产精品亚洲天堂| 国产成人亚洲精品青草天美| 1000部拍拍拍18勿入免费凤凰福利 | 男女超爽刺激视频免费播放| 久久亚洲AV成人无码国产电影 | 日韩在线一区二区三区免费视频 | 日韩不卡免费视频| 国产成人亚洲精品91专区高清| 国产精品亚洲成在人线| 无人在线观看完整免费版视频| 国产成人亚洲精品蜜芽影院| 久久亚洲免费视频|