六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 35|回复: 0

XPath语言入门

[复制链接]

升级  92%

8

主题

8

主题

8

主题

童生

Rank: 1

积分
46
 楼主| 发表于 2013-2-7 16:04:03 | 显示全部楼层 |阅读模式
 XPath语言是使用路径表达式确定XML文档结点. 所有的XML元素必须合理包含,且所有的XML文档必须有一个根元素。如同HTML一样,XML元素同样也可以拥有属性。XML元素的属性以名字/值成对的出现。XML语法规范要求XML元素属性值必须用引号引着。
<?xml version="1.0" encoding="GB2312"?>
<instance>
  <data>
      <helloworld hw="4711">Hello World</helloworld>
      <repeatdata>
        <input>aaa</input>
        <input>bbb</input>
        <input>ccc</input>
      </repeatdata>
      <extra>Got it!</extra>
      <message>Hello !</message>
      <titletext>These are examples of XForms Action usage.</titletext>
  </data>
</instance>
 
  在这里以这个简单XML文档,来学习XPath语言.
 
1.节点定位:

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

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

下面的XPath表达式选择元素instance下元素data中的helloworld元素
/instance/data/helloworld

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

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

data/helloworld

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

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

2.选择未知元素

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

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

/instance/data/*

下面的XPath表达式选择元素data下所有孙子辈的input元素
/instance/data/*/input

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

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

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

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

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

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

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

  以上XPath语言是初级的XPath语言,还有很多高级应用.其实我们学任何一门语言都一样,把基础打好,高级部分都是自己后天的努力.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表