设为首页
收藏本站
最近更新

文章搜索
本类热门

 

首页 >> 网络编程 >> XML >> XML技巧 >> 新闻正文 [字体:  ] [打印文档
节点匹配路径Xpath

文章作者:不祥
责任编辑:大鱼 录入时间:2004-11-15 21:17:51 来源:不祥
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意. 

>

举  例
 含  义
 匹配结果
 
//B[@id]
 所有具有属性id的B元素
 id值为b1和b2的两个B元素
 
//B[@*]
 所有具有属性的B元素
 两个具有id属性的B元素和一个具有name属性B元素
 
//B[not(@*)]
 所有不具有属性的B元素
 A元素→C元素下的B元素
 
//B[@id="b1"]
 id值为b1的B元素
 A元素下的B元素
 

亲属关系匹配
XML文档可归结为树型结构,因此任何一个节点都不是孤立的。通常我们把节点之间的归属关系归结为一种亲属关系,如父亲、孩子、祖先、后代、兄弟等等。在对元素进行匹配时,同样可以用到这些概念。例如:

举  例
 含  义
 匹配结果
 
//E/parent::*
 所有E节点的父节点元素
 id值为a1的A元素和id值为c1的C元素
 
//F/ancestor::*
 所有F元素的祖先节点元素
 id值为a1的A元素和id值为c2的C元素
 
/A/child::*
 A的子元素
 id值为b1、b2的B元素,id值为c2的C元素,以及没有任何属性的E元素
 
/A/descendant::*
 A的所有后代元素
 除A元素以外的所有其它元素
 
//F/self::*
 所有F的自身元素
 F元素本身
 
//F/ancestor-or-self::*
 所有F元素及它的祖先节点元素
 F元素、F元素的父节点C元素和A元素
 
/A/C/descendant-or-self::*
 所有A元素→C元素及它们的后代元素
 id值为c2的C元素、该元素的子元素B、D、F元素
 
/A/C/following-sibling::*
 A元素→C元素的紧邻的后序所有兄弟节点元素
 没有任何属性的E元素
 
/A/C/preceding-sibling::*
 A元素→C元素的紧邻的前面所有兄弟节点元素
 id值为b1和b2的两个B元素
 
/A/B/C/following::*
 A元素→B元素→C元素的后序的所有元素
 id为b2的B元素、无属性的C元素、无属性的B元素、id为d2的D元素、无属性的F元素、无属性的E元素。
 
/A/C/preceding::*
 A元素→C元素的前面的所有元素
 id为b2的B元素、id为e2的E元素、id为e1的E元素、id为d1的D元素、name为b的B元素、id为c1的C元素、id为b1的B元素
 

条件匹配
条件匹配就是利用一些函数的运算结果的布尔值来匹配符合条件的节点。常用于条件匹配的函数有四大类:节点函数、字符串函数、数值函数、布尔函数。例如前面提到的last()、position()等等。这些功能函数可以帮助我们精确寻找需要的节点。 
   

函数及功能
 作用
 
count()功能
 统计计数,返回符合条件的节点的个数
 
number()功能
 将属性的值中的文本转换为数值
 
substring() 功能

语法:substring(value, start, length)


 截取字符串
 
sum()功能
  
 求和


 


这些功能只是XPath语法中的一部分,还有大量的功能函数没有介绍,而且目前XPath的语法仍然在不断发展中。通过这些函数我们可以实现更加复杂的查询和操作。

以上这些匹配方法中,用得最多的还要数路径匹配。依靠给出相对于当前路径的子路径来定位节点的。

此新闻共有2页 上一页 1 2 下一页

推荐好友 | 频道收藏 | 打印文档 | 报告错误  
相关连接
·节点匹配路径Xpath
·XML的二十个热点问题
·ServerXMLHTTP到底传递什么身份标识?
·IIS如何接收ServerXMLHTTP传过来的编码字符?
·ServerXMLHTTP对象的危险特性
·使用XMLHTTP发送超长XML表单数据
·xml中的空格之完全解说
·把数据转换成XML格式的好处
同一专题
·无相关专题
发表评论 版权声明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有
转载
要求转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
共有评论查看评论
姓名: