XSL函数二----DOM中对象的方法[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 itbook 的 blog

xsl函数二----dom中对象的方法

  本期介绍多个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"

本文关键:DOM中对象的方法
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top