`
rainer
  • 浏览: 23989 次
  • 性别: Icon_minigender_1
  • 来自: 湖北荆州
最近访客 更多访客>>
社区版块
存档分类
最新评论

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 ─? 岬愣韵?/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)
 
分享到:
评论

相关推荐

    XSL Playground-开源

    **XSL Playground 开源项目详解** XSL Playground 是一个专为学习和实践 XSL(Extensible Stylesheet Language)设计的开源工具。XSL 是一种强大的语言,主要用于转换 XML(Extensible Markup Language)文档,将其...

    XML高级编程pdf-23

    XSL定义了一系列具有特殊含义的XML元素,这些元素位于xsl命名空间下,用于实现数据转换和样式定义。以下是对部分关键XSL元素的详细介绍: 1. **xsl:apply-templates** 此元素用于在模板中应用其他模板,通过指定...

    xslet:xslet项目提供了一些XSL库和applet。-开源

    xslet项目中的XSL库包含了一系列预定义的XSLT模板和函数,这些模板和函数可以大大简化开发过程,使得开发者无需从零开始编写复杂的转换规则。通过这些库,开发者可以快速实现XML到HTML的转换、XML数据的提取、甚至...

    XSLT学习资料代码资料上传

    - **函数库**:支持一系列内置函数,可用于字符串处理、数字操作等。 #### 三、XSLT文档结构 一个典型的XSLT文档包含以下结构: 1. **`&lt;?xml version="1.0"?&gt;`** - 指明文档类型为XML。 2. **`&lt;xsl:stylesheet&gt;`**...

    XPath入门 - XSL教程 - 3

    ### XPath入门 - XSL教程详解 #### 一、XPath简介 XPath是一种强大的查询语言,用于在XML文档中查找信息。其主要目标是对XML文档的组件进行定位,同时也为字符串、数字和布尔值的操作提供了基本的功能。XPath使用...

    Que.Special.Edition.Using.XSLT.Jan.2002

    XPath详解** XPath是一种在XML文档中查找信息的语言,它允许开发者使用路径表达式来选取节点或节点集。这部分内容深入讲解了XPath的各种表达式类型及其应用场景,如相对路径、绝对路径、轴选择器等。理解XPath对于...

    xpat编程

    XPath提供了一系列内置函数,如字符串处理函数、数值处理函数、布尔处理函数等,用于增强表达式的灵活性和功能性。 #### 五、总结 通过对XPath的深入探讨,我们了解到XPath作为一种强大的工具,在XML文档的查询和...

    XSLT与XPath入门转换XML文档与数据

    #### 三、XSLT与XPath核心概念详解 - **第1章:XSLT初体验** - 在这一章节中,读者将学习XSLT的基本概念和工作原理,包括如何创建第一个XSLT样式表,以及如何使用XSLT来转换简单的XML文档。 - 介绍XSLT的基本结构...

    Got-Easy-Issues

    《XSLT技术详解:轻松解决转换难题》 在信息技术领域,XML(eXtensible Markup Language)作为一种标记语言,广泛用于数据交换和存储。然而,XML文档本身并不具备直观的展示格式,这时就需要XSLT(eXtensible ...

    XSLT,XSD,XML 练习1

    "style.xsl"可能包含了一系列模板,将"data.xml"中的数据转换为用户友好的格式,如HTML,用于网页显示。 在实际应用中,XSLT和XSD通常一起使用,以确保XML数据的准确性和一致性,同时提供了一种灵活的方式来呈现...

    知名大公司出的net面试题.doc

    【知识点详解】 1. XML, XSD, XSL的区别: - XML (eXtensible Markup Language) 是一种用于标记数据的语言,它允许用户自定义标签来描述数据内容和结构。 - XSD (XML Schema Definition) 是XML的一个标准,用于...

    ajax开发利器

    2. **XSL函数**:提供了一系列内置函数,用于处理XML数据,如排序、选择节点等。 3. **XSLT与JavaScript的结合**:通过JavaScript解析XSLT,将转换后的HTML插入到DOM中。 **综合运用** 在实际开发中,Ajax开发...

    Beginning XSLT and XPath Transforming XML Documents and Data

    它允许开发者定义一系列模板来指定源文档中的元素应该如何被重构成新的XML文档或其他格式的文档。 - **XPath**: 主要用于在XML文档中查找信息。它是一种在XML文档中定位节点的语言,是XSLT的关键组成部分之一,用于...

    libxml2-2.9.0.zip

    **libxml2库详解** **一、libxml2简介** libxml2是开源的XML解析库,由Gnome项目开发并维护。它提供了一系列强大的工具和API,用于处理XML、HTML、XInclude、XPath、XPointer、XSLT、Namespaces、SGML以及DTD等XML...

    2021-2022计算机二级等级考试试题及答案No.1379.docx

    【知识点详解】 1. 垃圾回收机制:Java中的垃圾回收是自动内存管理的一种机制,它自动识别并释放不再使用的对象所占用的内存,防止内存泄漏,保证系统资源的有效利用。垃圾回收器通过判断对象是否被引用来决定是否...

    ArcGIS Server 9.2 javascript帮助文档

    - **发送请求**:提供了一系列函数来发起HTTP请求。 - **处理响应**:包含了解析服务器返回数据的功能。 - **错误处理**:支持异常捕获机制,确保程序的健壮性。 #### 十、总结 ArcGIS Server 9.2的JavaScript帮助...

    linux php-7.0.0.tar.bz2

    7. **废弃旧特性**:移除了如`ereg`系列的正则表达式函数,鼓励使用`preg`系列。 通过这个压缩包,你可以自行编译和配置PHP 7.0.0,以适应特定的系统环境和需求,从而更好地管理和优化你的Web应用程序。同时,了解...

    libxslt-1.1.26.win32.zip

    描述中提到,在编译PostgreSQL数据库系统时,可能需要安装一系列的依赖库,其中包括libxslt。这表明libxslt是PostgreSQL运行或开发过程中不可或缺的一部分,尤其是对于那些涉及XML数据处理的应用或功能。 **libxslt...

    libxslt-1.0.19.tar.gz

    libxslt是一个用于处理XSLT转换的C语言库,它是XSL(可扩展样式表语言)的一个重要组成部分。 描述"libxslt-1.0.19.tar.gz安装包Linux源码安装。"意味着这个压缩包是为在Linux操作系统上进行源代码编译安装而设计的...

    javascript简单代码全集

    该文件提供了一系列JavaScript代码片段,适用于初学者学习使用。其中包括了对话框操作、窗口控制、XML处理以及各种验证功能等。 #### 主要知识点 ##### 对话框操作 在JavaScript中,可以通过`window....

Global site tag (gtag.js) - Google Analytics