由于项目需要,自己学习了一下xpath的相关知识,就把这些简单的整理一下,下面的是xpath的入门以及使用,方便需要的朋友们.
1.XPath是什么
XPath(可扩展路径)是给XSL转换[XSLT]和XPointer[XPointer]的共享功能提供一个共用的句法及语义的结果。XPath的主要的目是用于对XML文档元件寻址。在支持这个主要目的的同时,它也为字符串,数字和布尔的操作提供了基本手段。XPath使用简明的、非XML句法以便於在URIs和XML属性值以内使用XPath,XPath对XML文档的抽象的、逻辑的结构而非它的表面句法进行操作,XPath的名字源于它在URL中用作对XML文档的层次的结构进行导航一个路径标志。
除了用做寻址外,XPath也被设计成以便它有能被用于匹配的一个自然的子集(测试一个节点是否匹配一个模式);XSLT中描述了XPath在这方面的使用。
XPath将一个XML文档建模成为一棵节点树,有不同类型的节点,包括元素节点,属性节点和正文节点。XPath定义了一种方法来计算每类的节点的字串值。一些节点的类型也有名字。XPath充分支持XML命名空间[XMLNames]。这样,节点的名字被建模成由一个局城部分和可能为空的命名空间 URI组成的对;这被称为扩展名。
2.XPath的基本语法
首先XPath返回的类型有以下几种:
1:节点集合(无序的、无重复的节点集合)
2:布尔(真或假)
3:数字(一个浮点数字)
4:字符串(UCS字符的顺序)
XPath的地址路径
地址路径是xpath用于定位的一条语句
基本的语法如下:
/选择XML文档的根结点
/*选择根结点的所有子节点,
*匹配任意子节点
/x选择根结点的所有x元素
//book选择根结点的所有后代节点中的book元素
//@id选择含有id属性的子节点
para[1]选择上下文节点的第一个para孩子
//vendor[@id='id1_2']/book选择符合“属性id=’id1_2’”的所有book元素
/bib/vendor/book[year>2002]选择符合“元素year>’2002’”的所有book元素
text()选择上下文节点的所有的正文节点孩子
@name选择上下文节点的name属性
@*选择上下文节点的所有的属性
*/para选择上下文节点的所有的para孙子
/doc/chapter[5]/section[2]选择doc的第五个chapter的第二个section
.//para选择上下文节点的para元素子孙
para[@type="warning"]选择的上下文节点的所有的有属性type且值为warning的para孩子
chapter[title="Introduction"]选择上下文节点的chapter孩子如果它有一个或多个title孩子且字串值为Introduction
employee[@secretaryand@assistant]选择上下文节点的所有既有secretary属性又有assistant属性的employee孩子
chpater[title]选择的上下文节点中有一个或一个以上title孩子的chpater孩子
1:child是缺省轴。例如,地址路径div/para是child:XSL教程:学会如何使用XPath入门iv/child::para的缩写。
2:属性也有缩写形式:attribute::能被缩写成@。例如,地址路径para[@type="warning"]为 child::para[attribute::type="warning"]的缩写,也就是选择有type属性且属性值为warning的para孩子。
3://是/descendant-or-self::node()/的缩写。例如,//para是/descendant- or-self::node()/child::para的缩写,因此选择文档中所有的para元素(即使para元素是文档元素,也会被//para所选择,因为文档元素是根节点的孩子);div//para是div/descendant-or-self::node()/child::para的缩写,因此将选择div孩子的所有para子孙.
这里面是xpath的一些详细介绍和用法:
[url]http://msdn.microsoft.com/en-us/library/ms256115(VS.85).aspx[/url]
1.XPath是什么
XPath(可扩展路径)是给XSL转换[XSLT]和XPointer[XPointer]的共享功能提供一个共用的句法及语义的结果。XPath的主要的目是用于对XML文档元件寻址。在支持这个主要目的的同时,它也为字符串,数字和布尔的操作提供了基本手段。XPath使用简明的、非XML句法以便於在URIs和XML属性值以内使用XPath,XPath对XML文档的抽象的、逻辑的结构而非它的表面句法进行操作,XPath的名字源于它在URL中用作对XML文档的层次的结构进行导航一个路径标志。
除了用做寻址外,XPath也被设计成以便它有能被用于匹配的一个自然的子集(测试一个节点是否匹配一个模式);XSLT中描述了XPath在这方面的使用。
XPath将一个XML文档建模成为一棵节点树,有不同类型的节点,包括元素节点,属性节点和正文节点。XPath定义了一种方法来计算每类的节点的字串值。一些节点的类型也有名字。XPath充分支持XML命名空间[XMLNames]。这样,节点的名字被建模成由一个局城部分和可能为空的命名空间 URI组成的对;这被称为扩展名。
2.XPath的基本语法
首先XPath返回的类型有以下几种:
1:节点集合(无序的、无重复的节点集合)
2:布尔(真或假)
3:数字(一个浮点数字)
4:字符串(UCS字符的顺序)
XPath的地址路径
地址路径是xpath用于定位的一条语句
基本的语法如下:
/选择XML文档的根结点
/*选择根结点的所有子节点,
*匹配任意子节点
/x选择根结点的所有x元素
//book选择根结点的所有后代节点中的book元素
//@id选择含有id属性的子节点
para[1]选择上下文节点的第一个para孩子
//vendor[@id='id1_2']/book选择符合“属性id=’id1_2’”的所有book元素
/bib/vendor/book[year>2002]选择符合“元素year>’2002’”的所有book元素
text()选择上下文节点的所有的正文节点孩子
@name选择上下文节点的name属性
@*选择上下文节点的所有的属性
*/para选择上下文节点的所有的para孙子
/doc/chapter[5]/section[2]选择doc的第五个chapter的第二个section
.//para选择上下文节点的para元素子孙
para[@type="warning"]选择的上下文节点的所有的有属性type且值为warning的para孩子
chapter[title="Introduction"]选择上下文节点的chapter孩子如果它有一个或多个title孩子且字串值为Introduction
employee[@secretaryand@assistant]选择上下文节点的所有既有secretary属性又有assistant属性的employee孩子
chpater[title]选择的上下文节点中有一个或一个以上title孩子的chpater孩子
1:child是缺省轴。例如,地址路径div/para是child:XSL教程:学会如何使用XPath入门iv/child::para的缩写。
2:属性也有缩写形式:attribute::能被缩写成@。例如,地址路径para[@type="warning"]为 child::para[attribute::type="warning"]的缩写,也就是选择有type属性且属性值为warning的para孩子。
3://是/descendant-or-self::node()/的缩写。例如,//para是/descendant- or-self::node()/child::para的缩写,因此选择文档中所有的para元素(即使para元素是文档元素,也会被//para所选择,因为文档元素是根节点的孩子);div//para是div/descendant-or-self::node()/child::para的缩写,因此将选择div孩子的所有para子孙.
这里面是xpath的一些详细介绍和用法:
[url]http://msdn.microsoft.com/en-us/library/ms256115(VS.85).aspx[/url]