您的位置: 首页 > 技术文档 > 网页制作 > 跟我学XSL(二)
仿 Office 2003 的工具条 回到列表 跟我学XSL(一)
 跟我学XSL(二)

作者:禹希初 时间: 2004-04-09 文档类型:转载 来自:CSDN

第 1 页 XSL的运算符
第 2 页 XSL函数一
第 3 页 脚本与XSL的结合及应用
第 4 页 XSL函数二

  本期介绍多个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 ── 结点对象

  示例,假定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

  返回值:

 结点类型  结点类型值  结点的字符形式描述
 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

  含义:以结点预定义的数据类型返回结点的值。

  语法: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)

出处:CSDN
责任编辑:panliu888

上一页 脚本与XSL的结合及应用 下一页

◎进入论坛网页制作网站综合版块参加讨论

相关文章 更多相关链接
重构、标准、布局
网站设计的标准时代
跟我学XSL(一)
XML+ JS创建树形菜单
本站会员制作 XML 指南 CHM版
作者文章
跟我学XSL(二)
跟我学XSL(一)
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:4/41个记录/页 转到 页 共4个记录 分享按钮

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2