严格说来XPATH2.0和XSLT2.0并无直接联系,但是XPATH的主要应用环境是在XSLT中了,所以也把这点内容写在XSLT中。
XPATH2.0中引入了sequence(序列的概念)。注意是XPATH2.0不是XSLT2.0。
XPATH表达式在1.0的时候只能表示四种类型:
1,节点集。
<xsl:vale-of select="root/item"/>
2,布尔值。
<xsl:value-of select="true()"/>
<xsl:if test="root/item=1"/>
3,数值型
<xsl:vlaue-of select="number('12.01')"/>
<xsl:value-of select="root/item[1]"/>中的1.
4,字符串
<xsl:value-of select="'ABCD'"/>
当XPATH2.0引入了对XML Schema内建数据类型的支持,使用户能直接访问19种简单类型。
XPATH2.0将每个xpath表达式的返回值都看作一个序列。
举例来说:我们可以写这样一条语句,<xsl:value-of select="1,2,3"/>。其中,(1,2,3)是一个序列。再如:<xsl:value-of select="root/item,1,root/item[1],root/itm[3]"/>,select属性指定了一个序列,其中包括root/item序列(嵌套序列),数字1,root/item[1]节点,root/item[3]节点。
序列仍可作为xslt2.0函数的参数,跟xpath1.0表达式一样:
for $x in /order/item return $x/price * $x/quantity
注意,这是以个XPATH2.0的表达式,不是XSLT2.0的。它返回一个序列,即所有item的price(价格)与quantity(数量)的乘积的集合。我们可以将序列作为XSLT2.0函数的参数,如:
<xsl:value-of select="sum(for $x in /order/item return $x/price * $x/quantity)"/>
<xsl:value-of select="if (number(catalog/cd[1]/price) < number(catalog/cd[2]/price)) then
number(catalog/cd[1]/price else catalog/cd[2]"/>
这是一个if操作,求两个cd中价格低的那个,同样是xapth2.0的表达式。
注意和xslt2.0的<xsl:if>的区别。
xpath1.0中<xsl:if test="students/student/name='Fred'/>表示,只要有一个学生的名字是Fred,那么表达式就为真。
xpath2.0中提供了更为准确的运算。
some $x in students/student/name satisfies $x='Fred'
另外:
every $x in /students/student/name satisfies $x='Fred'表示所有的学生的名字都是Fred,才为真。
分享到:
相关推荐
4. **XPath 2.0**:XSLT 2.0与XPath 2.0紧密集成,XPath 2.0引入了更多函数、类型和运算符,支持序列处理,使得数据查询更为强大。 5. **流式处理**:XSLT 2.0支持流式处理,这意味着可以处理超大XML文档,而无需一...
- **XSLT 转换**:XPath 2.0 作为 XSLT 2.0 的一部分,在进行复杂的 XML 转换时发挥着核心作用。 - **XML 数据验证**:利用 XPath 2.0 的丰富类型系统和内置函数,可以在文档级别进行数据验证。 - **数据库查询**:...
1. **XPath 2.0 支持**:XSLT 2.0 引入了对XPath 2.0 的支持,这使得开发者能够更方便地访问和操作XML文档中的元素。XPath 2.0 引入了许多新的功能,如序列处理、更丰富的数据类型等。 2. **增强的数据类型**:XSLT...
- **字符流序列**:介绍如何使用XSLT 2.0中的新特性处理文本。 - **文本转换**:演示如何对文本进行各种转换操作。 ##### 第九章:标识符与键 - **唯一标识符**:讨论如何生成唯一的标识符。 - **键的使用**:讲解...
XPath 2.0则增加了对序列的支持,使得返回多个值成为可能,同时提供了更丰富的数据类型和运算符。 源码包可能包含了示例程序、练习案例和完整的XSLT风格表,这些都为学习者提供了实际操作的机会。通过实践,你可以...
此外,XPath 2.0还引入了序列的概念,可以处理多个节点或值的集合。这在处理XML文档时提供了更大的灵活性和表达力。 在实践中,尽管目前Microsoft的XML处理器还不支持XPath 2.0,但随着XQuery和XSLT 2.0的实现,对...
- **序列类型**:XSLT 2.0支持更复杂的序列类型,例如整数序列、字符串序列等。 - **增强的排序功能**:提供了更灵活的排序机制,允许按照多个键进行排序。 - **错误处理**:改进了错误处理机制,使得开发者能够...
学习XPath时,可以参考W3CSchool提供的XPath2.0、XQuery1.0和XSLT2.0的内置函数参考手册。通过使用实例文档(如"books.xml")进行实践,可以加深对XPath语法和表达式的理解。通过实例的展示,学习者可以掌握如何利用...
XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。 XPath 是 W3C 标准 XPath 于 1999 年 11 月 16 日 成为 W3C 标准。 XPath 被设计为供 XSLT、XPointer 以及其他 XML 解析软件使用。
XPath是XSLT(XML样式表语言)的重要组成部分,同时也在其他XML处理技术如XQuery和DOM解析中广泛使用。XPath通过一种简洁的语言,使得开发者能够快速定位XML文档中的特定部分,进行数据提取和处理。 二、XPath基本...
ASP.NET 2.0支持XPathNavigator和XPathExpression类来执行XPath查询,以及XslTransform类来应用XSLT样式表。 3. **LINQ to XML** - 虽然LINQ(Language Integrated Query)是在.NET Framework 3.5中引入的,但了解...
2. **序列处理**:XPath 2.0 可以直接处理序列,而不仅仅是单一节点或节点集。 3. **模式匹配**:XPath 2.0 支持更复杂的模式匹配功能,如正则表达式匹配。 4. **类型检查与类型转换**:XPath 2.0 提供了更强大的...
随着版本的发展,XPath不断扩展其功能,例如XPath 2.0和XQuery 1.0采用了相同的数据模型,并支持相同的功能和运算符。 #### 2. XPath节点 在XPath中,XML文档被视为一个节点树,其中包含了不同类型的节点。这些...
2. **XPath和XSLT**:XPath是查询XML文档的强大工具,用于选取节点。而XSLT(Extensible Stylesheet Language Transformations)则用于转换XML文档。书中会详细阐述这两个技术的工作原理和使用方法。 3. **LINQ to ...
XPath 2.0增加了对类型和序列的支持,使其更加强大。 在实际应用中,XPath常用于XML和XSLT(XML样式表语言转换)的配合使用,通过XPath选取XML数据,XSLT则负责转换成其他格式。此外,许多编程语言如Java、Python、...
- **XSLT转换**:XSLT(Extensible Stylesheet Language Transformations)是一种用于转换XML文档的语言。它可以将一个XML文档转换成另一个结构不同的XML文档,甚至可以转换成HTML或纯文本格式。 - **XML Schema ...
8. **XML处理**:使用XML文档对象模型(DOM)、XML序列化、XPath和XSLT处理XML数据。 9. **网络编程**:HTTP请求、TCP/IP通信、套接字编程等。 10. **ASP.NET**:构建Web应用程序,包括页面生命周期、控件事件处理...
Xalan-J 2.7.0是该解析器的一个特定版本,包含了对XSLT 1.0和XSLT 2.0标准的支持。这个版本的发布,意味着用户可以利用更高级的XSLT功能,如变量、模板、函数库等,来进行复杂的XML数据转换。同时,2.7.0版还可能...