浏览 2863 次
锁定老帖子 主题:使用xpath操作xml(一.入门知识)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-26
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的一些详细介绍和用法: http://msdn.microsoft.com/en-us/library/ms256115(VS.85).aspx 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |