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']
只要掌握了xpath语法,理论上你就可以访问xml文件中的任意节点和任意值
分享到:
相关推荐
### C#操作XML之XPath语法详解 在C#中,操作XML文档是一项常见的任务,尤其在处理配置文件、数据交换格式或集成不同系统时。为了有效地解析和查询XML数据,XPath成为了一种不可或缺的语言。本文将深入探讨XPath的...
xml+Xpath基本应用,含有Dom4J及支持Xpath所需要的jar包,及xpath的入门教程,并附带一份源代码,提供对xml文件的基本读写及内容的增删改查的操作,方便学习xml,xpath及dom4j
javax.xml.xpath.*包,xpath在java类中使用的jar包
标题"DOM操作XML,XPATH技术"指的是在编程中处理XML文档时,使用Document Object Model (DOM) 和XPath两种主要技术。DOM是一种标准,用于表示XML和HTML文档的树形结构,它允许程序和脚本动态更新、添加、删除和查找...
在xml.jar里有javax.xml.xpath类,需要加载到CLASSPATH里
Xpath(XML Path Language)则是用来在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、属性、文本等。在本主题中,我们将深入探讨基于Xpath的XML文件查询和更新。 **Xpath基本概念** 1. *...
XPath是XML文档中查找信息的语言,它允许我们高效地定位到XML文档中的特定节点,如元素、属性或文本。在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath...
官方离线安装包,亲测可用
XPath路径表达式选取XML节点.doc 为XML中常用属性说明 XmlHelper.CS 一个类文件 包括对XML 文件的常规操作 xml字符串转换为dataTable DataTable 转换为xml 找出所有与pPath匹配路径的节点创建dataTable,并设置...
xPath.jar,XML解析包。XPath是获取xml中数据的一种方式,其简单语法易用。
在Java编程环境中,XPath是一种强大的查询语言,用于在XML文档中查找信息。它允许我们根据节点的名称、属性、值或其他特性来定位XML文档中的特定部分。本篇将深入探讨如何在Java中利用XPath来提取XML文档中的数据,...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、属性、文本等。XPath使用路径表达式来选取节点,类似于我们在网页浏览器中输入URL来访问特定页面的方式...
XPath(XML Path Language)则是用于在XML文档中查找信息的语言,它允许我们通过路径表达式来选取XML节点,如元素、属性、文本等。 在Java开发中,处理XML和XPath通常需要引入特定的库。在提供的信息中,有两个关键...
XPath是W3C定义的语言和正式的W3C推荐的语言,W3C拥有XML Path Language (XPath) Version 1.0规范。XPath诞生于1999年,作为对XSLT和XPointer语言的补充,但近来已成为流行的独立语言,因为单个XPath表达式可用于...
第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf
之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml"; XPathUtil util = XPathUtil.newInstance(xmlPath); Product ...
在"JSTL-XML-Xpath"这个主题中,我们可以看到JSTL是如何集成XML处理和XPath查询的。JSTL的`<c:import>`和`<x:parse>`标签用于导入XML文档并将其解析为JDOM或DOM对象。接着,`<x:path>`标签可以用来执行XPath表达式,...
Java XML XPath 是一种在XML文档中查找信息的语言,它被广泛用于Java开发中,以便高效地提取和操作XML数据。XPath使用路径表达式来选取XML文档中的节点或节点集,这些表达式类似于文件系统的路径,但针对的是XML文档...
《DOM与XPath解析XML并导入Oracle数据库的深度实践》 在现代软件开发中,XML(eXtensible Markup Language)作为一种通用的数据交换格式,广泛应用于系统间的通信与数据存储。而DOM(Document Object Model)与...
pugixml, 带有XPath支持的C++的轻量级简单和快速XML解析器 pugixml pugixml是一个 C++ XML处理库,由具有丰富遍历/修改功能的DOM和基于XML的超快速XML解析器组成,用于构造XML树和复杂的数据驱动树查询的XPath 1.0...