(word完整版)xpath详解总结,很全面
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时间,所以对XPath归纳及总结一下。
在这篇文章中你将能学习到:
•XPath简介
•XPath 路径表达式详解
•XPath在DOM,XSLT及XQuery中的应用
XPath简介
XPath是W3C的一个标准。
它最主要的目的是为了在XML1.0或X ML1.1文档节点树中定位节点所设计。
目前有XPath1.0和XPath2. 0两个版本。
其中Xpath1.0是1999年成为W3C标准,而XPath 2.0标准的确立是在2007年。
W3C关于XPath的英文详细文档请见:/TR/xpath20/。
XPath是一种表达式语言,它的返回值可能是节点,节点集合,原子值,以及节点和原子值的混合等。
XPath2.0是XPath1.0的超集。
它是对XPath1.0的扩展,它可以支持更加丰富的数据类型,并且X Path2.0保持了对XPath1.0的相对很好的向后兼容性,几乎所有的XPath2.0的返回结果都可以和XPath1.0保持一样。
另外XPath2. 0也是XSLT2.0和XQuery1.0的用于查询定位节点的主表达式语言。
XQuery1.0是对XPath2.0的扩展。
关于在XSLT和XQuery中使用XPath表达式定位节点的知识在后面的实例中会有所介绍。
在学习XPath之前你应该对XML的节点,元素,属性,原子值(文本),处理指令,注释,根节点(文档节点),命名空间以及对节点间的关系如:父(Parent),子(Children),兄弟(Sibling),先辈(Ancestor),后代(Descendant)等概念有所了解。
这里不在说明。
XPath路径表达式
在本小节下面的内容中你将可以学习到:
•路径表达式语法
•相对/绝对路径
•表达式上下文
•谓词(筛选表达式)及轴的概念
•运算符及特殊字符
•常用表达式实例
•函数及说明
这里给出一个实例Xml文件。
下面的说明及实例都是基于该XML文件。
•路径表达式语法:
•路径= 相对路径| 绝对路径
•XPath路径表达式= 步进表达式| 相对路径"/"步进表达
式。
•步进表达式=轴节点测试谓词
说明:
•其中轴表示步进表达式选择的节点和当前上下文节点间的
树状关系(层次关系),节点测试指定步进表达式选择的
节点名称扩展名,谓词即相当于过滤表达式以进一步过滤
细化节点集。
•谓词可以是0个或多个。
多个多个谓词用逻辑操作符and,or连接。
取逻辑非用not()函数。
请看一个典型的XPath查询表达式:/messages/message//child:: node()[@id=0],其中/messages/message是路径(绝对路径以"/ "开始),child::是轴表示在子节点下选择,node()是节点测试表示。