`
chenfengcn
  • 浏览: 118367 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

XPath 简单语法

阅读更多
XPath 是XML的查询语言,和SQL的角色很类似。以下面XML为例,介绍XPath 的语法。


<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd country="USA">
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <price>10.90</price>
  </cd>
  <cd country="UK">
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <price>9.90</price>
  </cd>
  <cd country="USA">
    <title>Greatest Hits</title>
    <artist>Dolly Parton</artist>
    <price>9.90</price>
  </cd>
</catalog>

        
定位节点
XML是树状结构,类似档案系统内数据夹的结构,XPath也类似档案系统的路径命名方式。不过XPath 是一种模式(Pattern),可以选出 XML档案中,路径符合某个模式的所有节点出来。例如要选catalog底下的cd中所有price元素可以用:


/catalog/cd/price    

如果XPath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来。以下的语法会选出文件中所有叫做cd的元素(在树中的任何层级都会被选出来):


//cd

选择未知的元素
使用星号(Wildcards,*)可以选择未知的元素。下面这个语法会选出/catalog/cd 的所有子元素:


/catalog/cd/*

以下的语法会选出所有catalog的子元素中,包含有price作为子元素的元素。


/catalog/*/price

以下的语法会选出有两层父节点,叫做price的所有元素。


/*/*/price

以下的语法会选择出文件中的所有元素。


//*

要注意的是,想要存取不分层级的元素,XPath语法必须以两个斜线开头(//),想要存取未知元素才用星号(*),星号只能代表未知名称的元素,不能代表未知层级的元素。

选择分支
使用中括号可以选择分支。以下的语法从catalog的子元素中取出第一个叫做cd的元素。XPath的定义中没有第0元素这种东西。


/catalog/cd[1]

以下语法选择catalog中的最后一个cd元素:(XPathj并没有定义 first() 这种函式喔,用上例的 [1]就可以取出第一个元素。


/catalog/cd[last()]

以下语法选出含有price子元素的所有/catalog/cd元素。


/catalog/cd[price]

以下语法选出price元素的值等于10.90的所有/catalog/cd元素


/catalog/cd[price=10.90]

以下语法选出price元素的值等于10.90的所有/catalog/cd元素 的price元素


/catalog/cd[price=10.90]/price

选择一个以上的路径
使用Or操作数(|)就可以选择一个以上的路径。例如:


/catalog/cd/title | catalog/cd/artist

选择所有title以及artist元素


//title | //artist

选择所有title以及artist以及price元素


//title | //artist | //price

选择属性
在XPath中,除了选择元素以外,也可以选择属性。属性都是以@开头。例如选择文件中所有叫做country的属性:


//@country
        
选择所有含有country这个属性的cd元素:


//cd[@country]
        
以下语法选择出含有属性的所有cd元素


//cd[@*]
        
以下语法选择出country属性值为UK的cd元素


//cd[@country='UK']

摘自:http://www.cnblogs.com/leves/archive/2005/11/25/284407.html
分享到:
评论

相关推荐

    XPath 简单语法

    ### XPath简单语法详解 #### 一、XPath简介 XPath是一种在XML文档中查找信息的语言,类似于HTML中的CSS选择器或SQL中的查询语句。XPath能够快速定位到XML文档中的某个节点或者一组节点,并且可以用来抽取节点数据...

    xpath实例语法教程及IBM使用的xpath路径观察器

    不可多得的xpath实例语法教程,里面有详细的实例,是学习xpath的好助手。...以往大家只能下载一些xpath的简单教程,现在还给大家提供详尽的实例教程和xpath观察器及验证器,真的不错。希望大家不要错过哟。

    xpath语法与函数

    ### XPath语法与函数知识点 ...无论是简单的数据检索还是复杂的文档转换,XPath都提供了灵活且高效的方法。通过对XPath的学习和实践,开发者可以更加高效地处理XML文档,实现数据的有效利用和管理。

    JsonPath使用类似XPATH的语法从JSON提取数据

    JsonPath是一种用于从JSON文档中提取数据的语言,其语法与XPath在XML文档中的操作非常相似。XPath是XML处理中常用的一种路径表达式语言,而JsonPath则是为JSON数据设计的查询语言。在Java开发中,处理JSON格式的数据...

    XPath语法详细介绍..XPath语法详细介绍

    为了更好地理解XPath的工作原理,我们先来看一个简单的XML文档示例: ```xml &lt;itemNumber&gt;C2688-67037 &lt;description&gt;LCD液晶显示器 &lt;quantity&gt;1 &lt;price&gt;358.00 &lt;itemNumber&gt;C2688-67061 音箱 ...

    Xpath生成器,自动生成XPATH,C#版

    路径表达式可以理解为类似于文件系统中文件路径的概念,例如 `/html/body/p` 是一个简单的XPath表达式,它表示从根节点开始,选取`html`元素下的所有`body`元素,再选取其中的所有`p`元素。 这个C#版的XPath生成器...

    C# xpath 最新应用语法

    XPath的语法基础主要包括路径表达式、轴、节点测试、节点集以及函数等。下面将对这些概念进行详细介绍: 1. 路径表达式:路径表达式是XPath的核心,它由路径步骤组成,用斜线 `/` 分隔。例如,`/bookstore/book` ...

    xpath 语法测试

    总结来说,"xpath 语法测试"提供了一个实践XPath的环境,结合Web服务、jQuery和AJAX,展示了XPath在现代Web开发中的应用。通过这个测试,开发者可以提升XPath技能,更有效地处理XML数据,提高代码的效率和可读性。

    xpath_helper.zip

    XPath Helper的安装过程非常简单。首先,你需要下载"xpath_helper.zip"压缩包并解压。在Chrome浏览器中,点击右上角的三个垂直点,进入“更多工具”菜单,然后选择“扩展程序”。在此页面中,打开右上角的“开发者...

    一个简单的爬虫demo使用了一些Xpath技术

    4. **Xpath语法**: - `/`:根路径,从文档根节点开始选择。 - `//`:任何位置的子节点,跨层级选择。 - `.//`:当前节点的任何位置的子节点。 - `*`:匹配任何元素节点。 - `@`:用于选取属性。 - `text()`:...

    xpath的jar包

    XPath的基本语法包括: 1. 节点选择:例如,`/根元素/子元素` 用于选取根元素下的所有子元素。 2. 属性选择:通过在元素后加上`@属性名`来选取属性,如`//元素[@属性名='值']`。 3. 过滤选择:通过在路径后加上条件...

    XPath xml课程实验

    这是xml课程实验,查找所有最外层的section元素(假设仅知道section元素能够无限嵌套,但并不确定最外层的section出现在文档的什么层次上,也就是说:不要简单地使用/book/section)

    XPath依赖Jar包

    XPath手册通常会包含更多详细的信息,比如XPath的完整语法、函数库的使用、命名空间的处理方法,以及各种复杂查询的实例,这对于初学者来说是非常有价值的参考资料。通过深入学习和实践,开发者可以熟练地利用XPath...

    xpath--java框架技术

    XPath的语法基于路径表达式,这些表达式可以指向XML文档中的特定节点。例如,`/html/body/p` 是一个路径表达式,它选择HTML文档中所有元素下的段落元素。XPath还支持轴的概念,如祖先轴(ancestor)、子节点轴(child)...

    IE浏览器Xpath工具.zip

    例如,"/html/body/p" 是一个简单的XPath,它会选择HTML文档中所有的段落(p)元素。XPath还支持相对路径,用于选取当前节点的子节点、父节点或同级节点。此外,XPath提供了许多函数和操作符,如选取所有满足特定...

    XPath.chm参考手册

    以下是一个简单的Java XPath示例: ```java import javax.xml.xpath.*; import org.w3c.dom.*; import org.xml.sax.InputSource; public class XPathExample { public static void main(String[] args) throws ...

    XPath-Helper

    安装XPath-Helper的方法非常简单,其中包含的“xpath-helper.crx”文件是Chrome浏览器扩展程序的标准格式。只需将这个文件拖拽到浏览器的扩展管理页面(chrome://extensions/),或者右键点击文件选择“加载已解压的...

    (官方)XPath教程

    XPath,全称XML Path Language,是一种在XML...掌握XPath对于处理XML数据至关重要,无论是简单的查询还是复杂的转换,都能得心应手。深入学习XPath教程,理解其核心概念和用法,将极大提升处理XML文档的效率和灵活性。

Global site tag (gtag.js) - Google Analytics