您的位置: 首页 > 技术文档 > 网页制作 > 跟我学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
站点最新 站点最新列表
全兼容的纯CSS级联菜单要点浅析
CSS Sprites 图片整合技术
雅安,一场中式旅行
热烈祝贺"醒狮杯"圆满结束
菊花宝典大赏大奖教程《阳台》
交互设计师怎样和产品团队合作
Photoshop打造个性潮流音乐海报
简单解读面包屑
CSS盒模型
Apple与Microsoft网站可用性研究
栏目最新 栏目最新列表
safari 4 新特性
Photoshop制作精美高光流线字
IE下img多余5像素空白解决方法
XHTML1.0与HTML兼容指引16条
JavaScript优化细节
全兼容的纯CSS级联菜单要点浅析
CSS Sprites 图片整合技术
Photoshop打造个性潮流音乐海报
CSS盒模型
45度地图编辑器及游戏开发心得
>> 分页 首页 前页 后页 尾页 页次:4/41个记录/页 转到 页 共4个记录

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

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

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

本文总共有 10 条评论,现在显示最新的 5 条。暂时没有人参与评分


202.108.243.178 Publish at 2004-6-17 10:54:55
呵呵
202.108.243.178 Publish at 2004-6-17 10:21:09
dsfsd
218.57.129.62 Publish at 2004-4-24 19:30:16
好东东
61.55.157.26 Publish at 2004-4-21 11:32:55
真的有用,如果能出书就好了
211.155.173.61 Publish at 2004-4-15 21:02:37
hao

查看全部评论

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
《Web标准设计》
《美工神话》
《Flash短片轻松学》
Illustrator CS3质感绘画表现技法
大师之路--Photoshop 完全解析
《用户体验要素》
HTML与CSS入门经典(第7版)
作品集 更多内容

华硕(Asus)手机 Zt23 毕业设计。 毕业设计。 Purple Mobile GUI 华硕(Asus)手机 Zt23 毕业设计。 毕业设计。 华贸提案