全世界的屋顶

posts(3) comments(34) trackbacks(0)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的文章
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(3)

  •  DB2
  •  vig(3)

文章分类(37)

  •  Ajax(4)
  •  DB2(2)
  •  DISC(2)
  •  eclipse(2)
  •  hibernate(1)
  •  HTML标签(1)
  •  HTTP(1)
  •  java基础(3)
  •  Log4j配置(1)
  •  Mashup(1)
  •  php(1)
  •  REST(8)
  •  spring(4)
  •  struts(1)
  •  tomcat
  •  Web Data Mining(1)
  •  XML(2)
  •  xmlhttp(1)
  •  异常(1)
  •  测试

文章档案(35)

  • 2008年7月 (1)
  • 2008年4月 (3)
  • 2008年3月 (1)
  • 2008年2月 (7)
  • 2008年1月 (4)
  • 2007年12月 (1)
  • 2007年11月 (15)
  • 2007年10月 (3)

相册

  • Ajax Web应用程序模型
  • Juris Hartmanis
  • REST
  • Spring
  • 成长辛路

收藏夹(7)

  •  Java(1)
  •  php(4)
  •  web2.0(2)

搜索

  •  

最新评论

  • 1. re: HTTP请求(GET与POST区别)和响应
  • mlkmk
  • --gs
  • 2. re: HTTP请求(GET与POST区别)和响应
  • <script>alert("sdf")</script>
  • --lcyang
  • 3. re: HTTP请求(GET与POST区别)和响应
  • 不错
  • --elesos
  • 4. re: HTTP请求(GET与POST区别)和响应
  • 何静静
  • --ssss
  • 5. re: HTTP请求(GET与POST区别)和响应[未登录]
  • !@#¥%……&
  • --a

阅读排行榜

评论排行榜

View Post

XPath入门学习

 

简述XPath,XSLT,XLink与XPointer

XSLT、XLink 和 XPointer 都是 W3C 标准。XSLT 和 XPath,以及 XSL Formatting Object (XSL-FO) 构成了 W3C eXtensible Stylesheet Language (XSL) 系列规范。

XSLT、XLink 和 XPointer 都是 W3C 标准。XSLT 和 XPath,以及 XSL Formatting Object (XSL-FO) 构成了 W3C eXtensible Stylesheet Language (XSL) 系列规范。

表示:XSLT 广泛使用 XPath 进行匹配――也就是,测试节点是否匹配指定模式。XSLT 指定了 XPath 使用的上下文。如果想使用 XSLT,就应该了解 XPath。在 关于本教程中使用的例子 中,您看到了 AuctionItemSummary-Base.xsl 样式表包含了 XPath 表达式。XSLT 使用这些 XPath 表达式,在源文档中查找匹配条件的元素,也使用它们来显示结果文档中的信息。XSLT 使用 XPath 函数来执行算术和字符串操纵操作。

链接:XLink 在 XML 中提供了 HTML 超链接概念的一般化。XLink 为要插入 XML 文档的元素提供了某种语法,以便把资源链接在一起,及描述它们的关系。这些链接可以是单向的,比如 HTML 的超链接,或者更加复杂的。XLink 使用 XPointer 来查找资源。

指向:XPointer 是 XPath 的扩展,提供了到 XML 文档及其内部的寻址。XPointer 一般化了 XPath 节点的概念,使用了 XPointer 位置、点和范围的概念。XPointer 也指定了在 XPath 计算过程中使用的上下文,并提供了在 XPath 中不可用的其他函数。

一句话小结: 
    XML
:其他技术的基础(数据)。 
    XML Schema
:数据格式规则。 
    XSLT
:数据表示/匹配。 
    XLink
:链接。 
    XPointer and XPath
:寻址。

    

XML语法

一.位置路径
1.
路径
位置路径是 XPath 中最有用也是应用最广泛的特性。位置路径是 XPath 表达式的特化(参见 表达式)。位置路径标识了和上下文有关的一组 XPath 节点。XPath 定义了两种语法:简化语法和非简化语法。

位置路径有相对和绝对两种类型。
相对位置路径由使用 / 分隔的定位步序列组成。比如:
list/item[currentPrice<20.0]

绝对位置路径由 / 和后面可选的相对位置路径组成,其中 / 表示根节点。
/list/item[currentPrice<20.0]
XPath
表达式 /list 就确定了一个单独的节点――list 根元素。

The XPath 表达式 /list/item 确定了所有 item 元素。

XPath 表达式可以引用属性及 XML 文档中的元素。当引用属性时,使用 @ 字符。例如,下面的 XPath 表达式确定了 currentPrice 元素,其 currency 属性包含值 EUR:

/list/item/currentPrice[@currency="EUR"]


@
用于引用属性。比如,位置路径 @currency 标识了 currency 属性。list/item[@private] 标识带有 private 属性的 item 元素,意即 AuctionItemList.xml 中的所有 item 元素。

* 用于引用上下文结点的所有子元素。@* 用于引用上下文结点的所有属性。

[] 也可用于引用有序序列中的特定元素。比如,list/item[2] 代表第二个 item 元素。实际上 [] 是一个谓词(参见谓词)。

// 用于引用上下文节点的所有孩子。比如,//item 表示所有的 item 元素,而 //list/item 引用以 list 为父元素的所有 item 元素(在该例中即所有的 item 元素)。

. 用于引用上下文节点自身。比如,. 选择上下文节点,而 .//item 代表作为上下文节点孩子的所有 item 元素。

.. 用于引用上下文节点的父节点。比如,在第一个bidIncrement 元素的上下文中, ../item 就表示第一个 item 元素。

2.谓词
谓词在位置路径中用于筛选当前节点集。谓词包含一个 boolean 表达式(或者很容易转化成 boolean 值的表达式)。用这个布尔表达式测试当前节点集的每个成员,如果表达式成立则保留该成员否则丢弃。谓词放在方括号[]中。比如下面的位置路径:

list/item/currentPrice[@currency="EUR"]
在计算过程中,AuctionItemList.xml 中所有的 currentPrice 元素都放在选择的节点集中。然后计算谓词 @currency="EUR",货币中不包含值 EUR 的 currentPrice 元素被抛弃。
谓词也可以使用关系运算符 >、<、>=、<= 和 !=。

二.表达式
1.
布尔表达式
XML
文档中包含 XPath 表达式时,必须遵循 XML 1.0 的结构良好性规则,任何 < 或 <= 字符必须分别用 &lt; 和 &lt;= 表示。比如,XPath 表达式 bidIncrement < 5 在 XPointer 中是合法的,但是在 XSLT 文档中必须写成 bidIncrement &lt; 5。

2.数字
XPath
数字是 64 位双精度浮点数。XPath 数字包括“非数字” NaN 值、正无穷和负无穷、正零和负零。
XPath
提供的数值运算符有:+(加)、-(减)、*(乘)、div(除)和 mod(整除求余)。
提示:减法(-)运算符的前面必须有空格,因为 XML 允许字符串中包含“-”字符。
下面是 XPath 数字表达式的一些例子:
7 + 3
返回 10
7 - 3
返回 4
7 * 3
返回 21
7 div 3
返回 2.3333333333333335
7 mod 3
返回 1

3.字符串
XPath
中的字符串使用引号(' 或 ")包围起来。如果 XML 文档中的 XPath 字符串包含引号,可以选择:
分别使用 &apos; 或 &quot; 引起来。比如,description = 'New 256m &quot;USB&quot; MP3 player'

三.函数库
XPath
定义了一组函数,称为核心函数库。每个函数从三个方面来定义:
(1)
函数名
(2)
返回类型(必须的,不能使用 void)
(3)
参数类型(可以没有参数或者带有多个参数,参数可以是必需的也可以是可选的)
函数被分成四类,以下分别介绍:
1.
节点集函数
节点集函数提供关于一组节点(一个或多个节点)的信息。常用的节点集函数有:
last()――
返回一个称为上下文大小的数字,即给定上下文中的节点数,不同于最后一个节点。
position()――
返回一个称为上下文位置的数字,集当前节点在给上下文节点集(列表)中的位置。比如,可以用表达式 position()=last() 测试处理的是否是集合中的最后一个节点。
count(node-set)――
返回实参节点集中的节点数。比如,在 AuctionItemList.xml 文档的上下文中,count(//item) 返回 item 元素的个数,即 7。
id(object)――
返回一个节点集,根据在 DTD 中声明为 ID 类型的唯一标识符选择元素。因为在 AuctionItemList.xml 中没有使用 DTD,这个例子中得到的节点集总是空集。Id("ItemId0001") 返回一个空节点集。
XPath
还定义了和节点名及名称空间有关的其他三个函数:
local-name()
namespace-uri()
name()

2.字符串函数
通过字符串函数您可以操纵字符串。常用的字符串函数有:
string()――
把参数对象或者上下文结点转化成字符串。合法的参数包括节点集、数字、布尔值或者其他任何类型――但是对于最后一种情况转换的结果不可预料。建议使用 XSLT 函数 format-number 把数字转化成字符串,或者使用 XSLT 元素 xsl:number 提供给用户。
concat()――
以两个或更多字符串作为参数并返回这些字符串的连接。比如,concat("Original ","recording ","Blue Train LP record") 返回 "Original recording Blue Train LP record"。
starts-with()――
如果第一个字符串参数以第二个字符串参数开始则返回 true,否则返回 false。比如,starts-with("Miles Smiles album, CD", "Miles") 返回 true。
contains()――
如果第一个字符串参数包含第二个字符串参数则返回 true,否则返回 false。比如,contains("Miles Smiles album, CD", "album") 返回 true。
其他的 XPath 字符串函数包括:substring()、substring-before()、substring-after()、string-length()、normalize-space() 和 translate()。

3.布尔函数
布尔函数用于把一个对象或字符串转化成 true 或者 false,或者直接获得真或假的值。布尔函数有:
boolean()――
根据以下规则返回作为参数传递的对象转换成布尔值的结果:不同于 0 或者 NaN 的数字为 true;非空的节点集或者字符串为 true。其他类型的对象已不可预料的方式转换。
not()――
如果作为参数传递的布尔值为 false 返回 true,否则返回 false。
true()
和 false()――分别返回 true 或 false。这些函数很有用,因为在 XPath 中 true 和 false 被看作是普通的字符串而不是真和假的值。
lang()――
如果上下文节点的语言和字符串参数中指定的语言相同,或者是它的一种子语言返回 true,否则返回 false。

4.数字函数
数字函数是 XPath 的数值函数,都返回数字。其中包括:
number()――
把可选的对象参数(如果没有指定参数则使用上下文节点)转化成数字,转换的规则如下:
 
布尔值 true 转换成1,false 转换成 0。
 
字符串转换成合理的数字。
 
节点集首先转换成字符串,然后把这个字符串转换成数字。
 
其他类型对象以不可预料的方式转换。比如,number("250") 返回 250,而 number("miles1965") 返回 NaN。
sum()――
对节点集参数中的所有节点应用 number() 函数后返回它们的和。
floor()――
返回不大于数字参数的最大整数数字。比如,floor(2.75) 返回 2。
ceiling()――
返回不小于数字参数的最小整数数字。比如,ceiling(2.75) 返回 3。
round()――
返回和数字参数最接近的整数数字。比如,round(2.75) 返回 3。

 

XML Path Language (XPath)
Version 1.0

W3C Recommendation 16 November 1999

This version:
http://www.w3.org/TR/1999/REC-xpath-19991116
(available in XML or HTML)
Latest version:
http://www.w3.org/TR/xpath
Previous versions:
http://www.w3.org/TR/1999/PR-xpath-19991008
http://www.w3.org/1999/08/WD-xpath-19990813
http://www.w3.org/1999/07/WD-xpath-19990709
http://www.w3.org/TR/1999/WD-xslt-19990421
Editors:
James Clark <jjc@jclark.com>
Steve DeRose (Inso Corp. and Brown University) <Steven_DeRose@Brown.edu>

Copyright  ©  1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.


 

 

posted on 2007-11-19 22:24 sun 阅读(1193) 评论(0)  编辑  收藏 所属分类: XML

新用户注册  刷新评论列表  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问   管理
相关文章:
  • XPath入门学习
  • xml解析
 
 
Powered by:
BlogJava
Copyright © sun