XSLT学习(2)
来源:互联网 发布:桔子瑜伽怎么样 知乎 编辑:程序博客网 时间:2024/04/27 21:08
Tree很少见,只有在xsl:variable中才出现。xslt2.0已经取消该类型。另外,转化为node-set,标准xslt1.0不提供,但是扩展接口通常都是提供的。比如微软提供了msxsl:node-set。
二 XSLT元素
元素列中的链接指向属性,提供了有关每个具体元素的更详实的信息。
- N: 表示最早支持此标签的Netscape版本
- IE: 表示最早支持此标签的Internet Explorer版本
注释:在IE 5中所支持的元素可能出现非标准的行为,这是由于IE 5发布于XSLT被确立为正式的W3C标准之前。
三 XSLT函数
current() document() element-available() format-number() function-available() generate-id() key() msxsl:node-set() unparsed-entity-uri() system-property()
具体的用法,以后详细介绍。
四 什么是XPATH
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
如果你把XML文档看成是一棵树的话,对于某个你想到达的结点,你必须指定路径,而XPATH就是这种路径的规范。详细内容可以看官方教程。
五 XPATH函数
boolean() false() lang() not() true() count() id() last() local-name() name() namespace-uri() position() ceiling() floor() number() round() sum() concat() contains() normalize-space() starts-with() string() string-length() substring() substring-after() substring-before() translate()
上面这么多函数,其实经常用到的没几个。
六 XPath 术语
节点(Node)
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
请看下面这个 XML 文档:
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price></book></bookstore>
上面的XML文档中的节点例子:
<bookstore> (文档节点)<author>J K. Rowling</author> (元素节点)lang="en" (属性节点)
基本值(或称原子值,Atomic value)
基本值是无父或无子的节点。
基本值的例子:
J K. Rowling"en"
项目(Item)
项目是基本值或者节点。
节点关系
父(Parent)
每个元素以及属性都有一个父。
在下面的例子中,book 元素是 title、author、year 以及 price 元素的父:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price></book>
子(Children)
元素节点可有零个、一个或多个子。
在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price></book>
同胞(Sibling)
拥有相同的父的节点
在下面的例子中,title、author、year 以及 price 元素都是同胞:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price></book>
先辈(Ancestor)
某节点的父、父的父,等等。
在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素:
<bookstore><book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price></book></bookstore>
后代(Descendant)
某个节点的子,子的子,等等。
在下面的例子中,bookstore的后代是 book、title、author、year 以及 price 元素:
<bookstore><book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price></book></bookstore>
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
XML 实例文档
我们将在下面的例子中使用这个 XML 文档。
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book> <title lang="eng">Harry Potter</title> <price>29.99</price></book><book> <title lang="eng">Learning XML</title> <price>39.95</price></book></bookstore>
选取节点
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
下面列出了最有用的路径表达式:
实例
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
选取根元素 bookstore
注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!
bookstore/book 选取所有属于 bookstore 的子元素的 book 元素。 //book 选取所有 book 子元素,而不管它们在文档中的位置。 bookstore//book 选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。 //@lang 选取所有名为 lang 的属性。谓语(Predicates)
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
实例
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
选取未知节点
XPath 通配符可用来选取未知的 XML 元素。
实例
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
选取若干路径
通过在路径表达式中使用“|”运算符,您可以选取若干个路径。
实例
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
XML 实例文档
我们将在下面的例子中使用此 XML 文档:
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book> <title lang="eng">Harry Potter</title> <price>29.99</price></book><book> <title lang="eng">Learning XML</title> <price>39.95</price></book></bookstore>
XPath 轴
轴可定义某个相对于当前节点的节点集。
位置路径表达式
位置路径可以是绝对的,也可以是相对的。
绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割:
绝对位置路径:
/step/step/...
相对位置路径:
step/step/...
每个步均根据当前节点集之中的节点来进行计算。
步(step)包括:
- 轴(axis)
- 定义所选节点与当前节点之间的树关系
- 节点测试(node-test)
- 识别某个轴内部的节点
- 零个或者更多谓语(predicate)
- 更深入地提炼所选的节点集
步的语法:
轴名称::节点测试[谓语]
实例
XPath 运算符
下面列出了可用在 XPath 表达式中的运算符:
如果 price 是9.80,则返回 true。
如果 price 是9.90,则返回 fasle。
!= 不等于 price!=9.80如果 price 是 9.90,则返回 true。
如果 price 是 9.98,则返回 fasle。
< 小于 price<9.80如果price是9.00,则返回true
如果price是9.98,则返回fasle
<= 小于或等于 price<=9.80如果 price 是9.00,则返回 true。
如果 price 是9.90,则返回 fasle。
> 大于 price>9.80如果 price 是 9.90,则返回 true。
如果 price 是 9.80,则返回 fasle。
>= 大于或等于 price>=9.80如果 price 是 9.90,则返回 true。
如果 price 是 9.70,则返回 fasle。
or 或 price=9.80 or price=9.70如果 price 是 9.80,则返回 true。
如果 price 是 9.50,则返回 fasle。
and 与 price>9.00 and price<9.90如果 price 是 9.80,则返回 true。
如果 price 是 8.50,则返回 fasle。
mod 计算除法的余数 5 mod 2 1- XSLT学习(2)
- XSLT学习(1)
- 学习XSLT(二)
- XSLT学习笔记--NET Framework对XSLT的支持(2)
- XSLT学习(二)template
- XSLT学习(五)sort
- XSLT学习(六)if
- XSLT学习(七)choose
- XSLT知识(2)
- 学习xslt
- xslt 学习
- php5 xml学习2之xslt
- php5 xml学习2之xslt
- [XML]学习笔记(八)XSLT
- XSLT学习(一) xml转换
- XSLT学习(三)value-of
- XSLT学习(四)for-each
- XSLT学习(八)apply-templates
- IPv6发展的机会及问题思考
- J2EE 学习指南——给入门者的一点启示
- Hibernate中使用SQLQuery
- 第一次学钓鱼
- 我的SQL Server2000辅助工具
- XSLT学习(2)
- 军训的苦与甜
- 推荐一个.net下学习水晶报表的好程序兼ms sql server的好助手
- 就可以看到中文,保存后内容会自动转为unicode
- F1~F12键的功能和作用的详解
- ASP 如何读取 Word 档案内容并显示于网页
- 关于学习与创业——给大学生的一些建议
- 偶像:郑源(资料)
- 文件锁定解锁