無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
          本期介紹多個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)



          凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
          、轉載請注明來處和原文作者。非常感謝。

          posted on 2006-04-21 16:53 草兒 閱讀(224) 評論(0)  編輯  收藏 所屬分類: C#+XML
          主站蜘蛛池模板: 萨迦县| 凭祥市| 景宁| 民权县| 津南区| 双江| 自贡市| 兴海县| 交口县| 文成县| 固原市| 汾阳市| 尚义县| 铁力市| 张家港市| 定日县| 澄江县| 商丘市| 三明市| 宣武区| 左贡县| 平邑县| 辽阳县| 长武县| 洛宁县| 汽车| 保山市| 深州市| 台山市| 宁武县| 荆门市| 甘洛县| 蒙城县| 道孚县| 昌江| 新巴尔虎右旗| 西青区| 马公市| 大石桥市| 唐河县| 蕲春县|