`
沈冠军
  • 浏览: 111198 次
  • 性别: 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的基础用法,包括XPath的简介、教程、Axes、节点类型、实例、语法以及运算符。 1. **XPath简介** XPath是W3C标准的一部分,它的主要目的是为了提供一种简洁且相对独立的方式来定位XML文档中的...

    dom4j及xpath基础应用

    **DOM4J与XPath基础应用** DOM4J和XPath是Java开发中处理XML文档的两个重要工具。在本文中,我们将深入探讨它们的基本概念、功能以及如何在实际项目中运用。 **DOM4J简介** DOM4J是一个非常灵活且功能强大的Java ...

    xpath基础培训资料

    xpath 基础 培训资料

    XPath基础知识

    ### XPath基础知识深度解析 #### XPath概述 XPath是一种用于在XML文档中查找信息的语言,它提供了一种在XML文档中通过元素和属性进行导航的方式。XPath是XSLT(Extensible Stylesheet Language Transformations)...

    XPath基础.docx

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。在Scrapy这个强大的Python爬虫框架中,XPath是数据提取的关键工具,使得我们可以高效...

    xpath 基础

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,包括元素、属性、文本等。XPath基于XPath 1.0规范,但现代开发中也可能涉及XPath 2.0及以上版本,提供了更丰富...

    Xpath指南XPATH实例

    1. **XPath基础概念**: - **节点类型**:XPath处理的节点包括元素(Element)、属性(Attribute)、文本(Text)、命名空间(Namespace)、处理指令(Processing Instruction)、注释(Comment)和文档(Document...

    C#操作xml之xpath语法

    #### XPath基础语法 让我们通过一个示例XML文档来了解XPath的基本语法: ```xml &lt;title&gt;Empire Burlesque &lt;artist&gt;Bob Dylan &lt;price&gt;10.90 &lt;title&gt;Hide your heart &lt;artist&gt;Bonnie Tyler &lt;price&gt;...

    XPath and XSLT

    1. XPath基础:路径表达式、节点类型、轴、函数库等。 2. XSLT结构:模板规则、模式匹配、变量和参数、输出指令。 3. 数据模型:理解XSLT如何表示XML文档。 4. 实践应用:如何创建XSLT样式表,以及在实际项目中应用...

    JavaScript与Xpath

    5. XPath 基础:掌握选取节点的基本路径表达式,如 `/`、`.`、`..`、`*`、`@` 等。 6. XPath 函数:学习如何使用 `text()`、`count()`、`contains()` 等函数来过滤和处理节点。 7. JavaScript 中的 XPath 应用:了解...

    XPath 简单语法

    #### 二、XPath基础语法 XPath的基础语法主要包括节点选择、属性选择、节点位置以及布尔表达式等几个方面。下面将对这些基础语法进行详细介绍: ##### 1. 节点选择 节点选择是XPath中最基本的功能之一,通过路径...

    dom4j中xpath的使用

    ### XPath基础 XPath的语法基于路径表达式,它允许我们通过节点路径来定位XML文档中的元素。路径表达式可以是相对的或绝对的,类似于文件系统的路径。例如,`/root/element` 表示从根节点`root`开始,选取其下的...

    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实现的网络爬取教程PPT

    #### 二、Xpath基础知识 1. **Xpath定义** - Xpath全称为XML Path Language,是一种用于在XML或HTML文档中查找信息的语言。 - 它提供了一种简洁有效的方式来定位和处理文档中的各个部分。 2. **Xpath的选择功能*...

    XPATH学习,xpath入门的好东西啊

    ### XPATH基础与实战应用详解 #### 一、XPATH简介 XPATH是一种用于XML文档查询的语言,它能够帮助我们快速地在XML文档中查找信息。XPATH支持使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式非常...

    dom4j_xpath_junitTest.zip

    **XPath基础** XPath是一种在XML文档中查找信息的语言。它的主要功能包括: 1. **节点选择**:通过表达式选取XML文档中的元素、属性、文本节点等。 2. **节点测试**:确定节点是否符合特定条件,如元素名、属性值...

    Beginning XSLT and XPath Transforming XML Documents and Data

    ### XSLT与XPath基础知识:转换XML文档与数据 #### 引言 随着XML内容管理应用的迅速增长,XSLT(可扩展样式表语言转换)与XPath的需求也在不断提升。对于许多开发者而言,掌握XSLT处理模型并不容易。本书...

    XSLT与XPath入门转换XML文档与数据

    #### 一、XSLT与XPath基础知识 **XSLT(Extensible Stylesheet Language Transformations)**是一种基于XML的标准语言,用于将一个XML文档转换成另一种XML文档或者HTML文档。XSLT通过一系列规则指定源XML文档如何被...

    知识库Xpath培训.pdf

    1. **XPath基础**: - **定义**:XPath是一种在XML文档中定位信息的语言,它可以用来选取元素、属性、文本等内容。 - **路径表达式**:如同文件路径,XPath使用路径来定位XML文档中的节点。例如,`/html/body/div...

Global site tag (gtag.js) - Google Analytics