`
沈冠军
  • 浏览: 110091 次
  • 性别: Icon_minigender_1
  • 来自: 玉林
社区版块
存档分类
最新评论

XPath基础

    博客分类:
  • xml
阅读更多

      最近感觉xml的用处挺大的,特别是在数据交互的时候,比如ajax从后台取的数据,就可以得到一个xml文本,还有在很多框架的配置都是用xml进行配置,所以懂得如何从xml提取所需要的信息很重要,在网上学习了一下XPath,虽然网上都有,但是自己还是想整理一下,留着日后用用到时可以参考一下。

一、什么是XPath

XPath 使用路径表达式在 XML 文档中进行导航,确切的说它是一个标准的路径,根据该路径可以解析出xml文档里面的信息。

二、xml基本语法。

1、xml文档

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

 

2、选取节点

 表达式          功能
nodename  选取此节点的所有节点
/                 从根节点开始选取
//                从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
.                 选取当前节点
..                选取当前节点的父节点
@               选取属性
3、列子
 bookstore             选取bookstore节点的所有节点 
bookstore/book     选取bookstore节点下的所以book节点
//book                    选取所有的book节点,而不管它们在文档中的位置
bookstore//book    选取bookstore节点下的所有book节点
//@lang                  选取属性为lang的节点
3、谓语
/bookstore/book[1]                               选取bookstore下的第一个book节点
/bookstore/book[last()]                         选取bookstore节点下的最后一个book节点
/bookstore/book[position()<3]              选取bookstore节点下的第一和第二个节点
//title[@lang]                                         选取属性为lang的所有title节点
//title[@lang='eng']                               选取属性为lang并且值为eng的所以title节点
/bookstore/book[price<32.00]              选取bookstore下的price<32.00的book节点
/bookstore/book[price>30.00]/title       选取bookstore下的book的price>30.00的title节点
4选取未知节点
*               匹配任何元素节点
@*            匹配任何属性节点
node()      匹配任何类型的节点
5列子
/bookstore/*               选取bookstore元素的所以子元素
//*                               选取文档中的所有元素
//title[@*]                   选取所有带有属性的title元素
6、选取若干路径
//book/title|//book/price              选取 book 元素的所有 title 和 price 元素。
//title|//price
/bookstore/book/title|//price
7、XPath 轴
ancestor                                 选取当前节点的所以先辈节点
ancestor-or-self                     选取当前节点的所有先辈节点及该节点
attribute                                选取当前节点的所以属性
child                                       选取当前节点的所有子元素
descendant                           选取当前节点的所以后代元素
descendant-or-self                选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following                                选取文档中当前节点的结束标签之后的所有节点。
preceding                              选取文档中当前节点的开始标签之前的所有节点。
self                                         选取当前节点
8 、步的语法:
轴名称::节点测试[谓语]
9、例子
child::book                           选取所有属于当前节点的子元素的book节点
attibute::lang                       选取当前节点的lang属性
child::*                                 选取当前节点的所有子节点
attibute::*                            选取当前节点的所以属性
child::text()                           选取当前节点所有文本子节点
child::node()                         选取当前节点的所有子几点
descendant::book                选取当前节点的所有book先辈
ancestor::book                     选取当前节点的所有book父节点
ancestor-or-self::book     
child::*/child::price               选取当前节点的所有孙price节点
10、xpath运算符
预算符             描述              实例                      返回值
|            计算两个节点集    //book|//cd               返回所有拥有 book 和 cd 元素的节点集
+                  加法              5+4                       9
-                   减法              2-1                       1
*                  乘法              2*4                       8
div               除法              8div4                     2
=                 等于              price=9.80                如果 price 是 9.80,则返回 true。如果 price 是 9.90
!=
<
<=
>
>=
or                或           price=9.80 or price=9.50  如果 price 是 9.80,则返回 true。如果 price 是 9.60,则返回 false。
and               与                price>9.00 and price<9.90
mod     计算除法的余数     5 mod 2

三、小结一下

       xpath最大的好处就是可以很容易的从xml文档中提取出所需要的信息,不需要使用for循环从头遍历,要使用xpath语句,必须先创建httpRequest对象,就像ajax一样,缺点就是在不同的浏览器中,有写语法得不到想要的结果,具体的实例见附近。

  • XPathTest.rar (4.4 KB)
  • 描述: 具体的使用例子源码
  • 下载次数: 1
分享到:
评论

相关推荐

    XPath基础用法详解

    xpath简介、教程、Axes、节点、实例、语法、运算符

    xpath基础培训资料

    xpath 基础 培训资料

    XPath基础知识

    XPath基础知识

    XPath基础.docx

    在scrapy中,对数据进行筛选和提取,采用较多的是XPath表达式。本文介绍了常用的提取方法。XPath是一种XML路径语言,通过该语言,可以在XML文档中迅速查找到相应的信息。 在XPath表达式中,使用“/”可以选择某个...

    xpath 基础

    xpath案例,参考文档,附带dom4j的jar包

    dom4j及xpath基础应用

    NULL 博文链接:https://tianqiushi.iteye.com/blog/2342241

    Xpath-Overview:该存储库包含有关xpath基础知识和xpath轴的简要概述

    该存储库包含有关xpath基础知识和xpath轴的简要概述。 讨论过的主题- * What is Xpath * Where to Use Xpath * Types of Xpath * Which Xpath statagy should be used * Xpath with some different fuctions ...

    XPath jar

    只有jar 没有文档 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery ...因此,对 XPath 的理解是很多高级 XML 应用的基础。

    使用 XML XPath 2.0 入门

    虽然还是候选推荐标准,但 XPath 2.0 即将得到正式批准。这是 1999 年以来对 ...XPath 2.0 推荐标准是 XSLT 2.0 和 XQuery 1.0 的基础。这两种语言都以 XPath 作为核心查询引擎,并增加了一些语句来格式化查询结果。

    demo_04_xpath_常见的用法.py

    分享一个xpath的基础用法,介绍了小path的一些基本成操作,代码文件。。。一个基础操作用法。。。

    XPath官方手册中文版

    XPath官方手册中文版,内容介绍的很全面,将xpath相关的基础如xml等介绍得很好,比较适合初学者

    XPath 教程

    XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时...因此,对 XPath 的理解是很多高级 XML 应用的基础。

    web端自动化基础xpath.docx

    web端自动化基础xpath

    uiautomatorviewer二次开发+xpath

    在uiautomatorviewer原有基础上增加多一个xpath显示。

    XPath教程DOC

    XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery...因此,对 XPath 的理解是很多高级 XML 应用的基础。 开始学习 XPath !

    dom4j基础入门文档(SAX,DOM,XPATH)

    dom4j基础入门文档,与 W3C DOM API 相比,使用 dom4j 所包含的解析器的好处是 dom4j 拥有本地的 XPath 支持。

    《XSLT与XPath入门:转换XML文档与数据》 [PDF]

    XML内容管理应用程序的...本入门教程提供了XSLT处理模型的基础,为开发者提供了重要的基本功. XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。  XPath 是一种用于在 XML 文档中进行导航的语言。

    xpath解析

    NULL 博文链接:https://ladybird2010.iteye.com/blog/842914

    db2数据库入门教程(官方中文版)

    PART I – 概览.........................................................................................................................11 第 1章 – DB2 Express-C是什么?..................................

Global site tag (gtag.js) - Google Analytics