XPath是一种XML文档的寻址语言

转载 2006年06月15日 13:56:00

XPath是一种XML文档的寻址语言

什么是XPath ?
  

  -XPath是定义XML文档元素的语法规则集合
  
  
-XPath使用路径定义XML元素
  
  
-XPath定义标准函数库
  
  
-XPath是XSLT主要元素
  
  
-XPath不是XML格式
  
  
-XPath是W3C制定的标准

 

译者注:本文以XPath 1.0为基准。关于XPath 2.0另文介绍

XPath类似传统的文件路径

  XPath使用路径表达式去确定XML文档的节点。这些路径与计算机系统使用的文件系统极为相似。
  例如:
  
  home/xml/index.html


XPath 示例

首先建立一个简单的XML文档,一个常见定单的部分内容

 

<?xml version="1.0" encoding="GB2312"?>

<order>
  
<item>
    
<itemNumber>C2688-67037</itemNumber>
    
<description>LCD液晶显示器</description>
    
<quantity>1</quantity>
    
<price>358.00</price>
  
</item>
    
<item>
    
<itemNumber>C2688-67061</itemNumber>
    
<description>音箱</description>
    
<quantity>1</quantity>
    
<price>16.50</price>
  
</item>
    
<item>
    
<itemNumber>C2688-67010</itemNumber>
    
<description>鼠标</description>
    
<quantity>1</quantity>
    
<price>8.50</price>
  
</item>
</order>


下面的XPath表达式选择ROOT元素order

/order

下面的XPath表达式选择元素order中的所有item元素

/order/item

下面的XPath表达式选择元素order下元素item中的所有price元素
/order/item/price

注释:用“/”路径开始代表元素的绝对路径


XPath定义标准函数库

下面的XPath表达式选择元素item中的所有price值大于12.60的元素
/order/item[price>12.60]

XPath用于XSLT

XPath是XSLT标准的核心,没有XPath知识,不可能建立XSLT文挡

XPath是为XSLT,XPointer及其他XML解析软件而设计。

目前,W3C已推出功能更强大的XPath2.0版本

--------------------------------------------------------------------------

XPath 语法规则

 

XPath使用路径表达式去确定XML文档中的节点。

我们将利用下面的XML文档描述XPath语法

 

<?xml version="1.0" encoding="GB2312"?>

<order>
  
<item catalog="parts">
    
<itemNumber>C2688-67037</itemNumber>
    
<description>LCD液晶显示器</description>
    
<quantity>1</quantity>
    
<price>358.00</price>
  
</item>
    
<item catalog="parts">
    
<itemNumber>C2688-67061</itemNumber>
    
<description>音箱</description>
    
<quantity>1</quantity>
    
<price>16.50</price>
  
</item>
    
<item catalog="parts">
    
<itemNumber>C2688-67010</itemNumber>
    
<description>鼠标</description>
    
<quantity>1</quantity>
    
<price>8.50</price>
  
</item>
</order>

 

节点定位:

XML文挡可以表示为树结构节点形式
XPath使用模式表达式识别XML文档的节点。

一个XPath的模式是使用反斜杠“/”分开子元素名称描述路径

下面的XPath表达式选择元素order下元素item中的所有price元素
/order/item/price

注释:用“/”路径开始代表元素的绝对路径.

不用“/”路径开始代表元素的相对路径

item/price

用“//”路径开始代表整个文档满足条件的所有元素

下面的XPath表达式选择文档中所有的item元素
//item

选择未知元素

通配符 “*”可用于选择未知XML元素

下面的XPath表达式选择元素order中的所有item元素所属的子元素

/order/item/*

下面的XPath表达式选择元素order下所有孙子辈的price元素
/order/*/price

下面的XPath表达式选择所有具有两个祖先的price元素
/*/*/price

下面的XPath表达式选择文档所有元素
//*

选择分支

使用方括号[]可以指定特定的元素

下面的XPath表达式选择元素order中的第一个item的子元素

/order/item[1]

下面的XPath表达式选择元素order中的最后一个item的子元素
/order/item[last()]

下面的XPath表达式选择元素order中具有price元素的item元素
/order/item[price]

下面的XPath表达式,从元素order中选择具有price等于12.60元素的item元素
/order/item[price=16.50]

下面的XPath表达式,从隶属于元素order的item元素中选择具有price等于12.60元素的price元素
/order/item[price=16.50]/price

选择几个路径

在XPath表达式中,使用 "|" 运算符可以选择几个路径 。实质上是逻辑“与”操作

下面的XPath表达式,从隶属于order的item元素中选择所有itemNumber 和description 元素 
/order/item/itemNumber | /order/item/description


下面的XPath表达式,从文档中选择所有itemNumber 和description 元素 
//itemNumber | //description

下面的XPath表达式,从文档中选择所有itemNumber ,description和price 元素 
//itemNumber | //description | //price

下面的XPath表达式,选取属于order中item下所有itemNumber元素和从文档中选择所有description元素 
/order/item/itemnumber | //description

选择属性
在XPath中,所有属性使用@前缀

下面的XPath表达式,选取所有名为catalog的属性
//@catalog


下面的XPath表达式,选取所有具有catalog属性的item元素
//item[@catalog]

下面的XPath表达式,选取所有具有任何属性的item元素
//item[@*]

下面的XPath表达式,选取所有具有catalog等于"parts"属性的item元素
//item[@catalog="parts"]

 

 

XML解析、生成、Xpath

XML解析方式SAX解析方式 SAX(simple API for XML)是一种XML解析的替代方法。 相比于DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。...
  • qq_27853161
  • qq_27853161
  • 2016年12月14日 16:30
  • 735

xpath操作

XPath:xml path Language,是用于确定xml某个节点位置的语言。 根据xpath查找节点的JavaScript方法 function selectSingleNode(xml...
  • xinyu0100
  • xinyu0100
  • 2010年08月10日 16:54
  • 497

使用DOM4J解析XML文档,以及使用XPath提取XML文档

使用DOM4J解析XML文档,以及使用XPath提取XML文档
  • liudao7994
  • liudao7994
  • 2013年07月09日 14:45
  • 875

利用XPath解析XML文档

内容提要 1.解析Xml文件有哪些方法?各有什么优缺点? 2.如何用XPath解析xml文档的要点。        先来看看解析xml文件的方法都有哪些吧,本段文字来自网络,可以帮助大家对这个...
  • two_bin
  • two_bin
  • 2013年04月06日 15:31
  • 652

C#通过XPath解析xml文件

xpath语法讲解:http://www.w3school.com.cn/xpath/xpath_syntax.asp用xpath解析xml的用例在这里:http://www.cnblogs.com/...
  • lxj1137800599
  • lxj1137800599
  • 2016年07月18日 15:24
  • 1399

概念:ASP是一种语言么?

正文vbscript和jscript竟然被称作是低级语言,我倒是第一次听说!它们可以算得上高级语言中的高级语言了。所谓脚本语言就是指某个大型的软件为了实现复杂的功能而为此开发的一种比较简单的语言,类似...
  • baiyin_bit
  • baiyin_bit
  • 2009年05月22日 16:53
  • 1706

Java是一种什么语言

Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Ja...
  • u012859193
  • u012859193
  • 2014年04月02日 20:19
  • 4584

C语言&取址符、*寻址符(六)

//声明变量 int *i_num; int ii_num = 3; float f_num; char *c_pointer , cc_pointer; ...
  • Jason_chen13
  • Jason_chen13
  • 2016年03月07日 11:03
  • 1626

使用XPath语言解析XML文档

使用XPath语言解析XML文档         关于XPath的基础知识,可以访问http://www.w3school.com.cn/xpath/index.asp 1 2 3...
  • sinat_25376319
  • sinat_25376319
  • 2017年08月30日 15:49
  • 100

C语言的本质(29)——C语言与汇编之寄存器和寻址方式

x86的通用寄存器有eax、ebx、ecx、edx、edi、esi。这些寄存器在大多数指令中是可以任意选用的,比如movl指令可以把一个立即数传送到eax中,也可传送到ebx中。但也有一些指令规定只能...
  • yincheng01
  • yincheng01
  • 2014年07月19日 15:13
  • 2065
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XPath是一种XML文档的寻址语言
举报原因:
原因补充:

(最多只允许输入30个字)