XML的xPath格式

时间:2022-11-27 00:17:21

XML的xPath格式(C#)

xPath是XML提供的一种格式,用来查询XML的节点。

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book>

  <title name="wu" lang="eng">Harry Potter</title>

  <price>29.99</price>

</book>

<book>

  <title lang="eng">Learning XML</title>

  <price>39.95</price>

</book>

</bookstore>

下面讲解的xPath语法都是根据上面的XML来的。

"bookstore"

从当前节点的子节点中选择名为bookstore的节点。

"/bookstore"

从根节点的子节点中选择名为bookstore的节点。

"//bookstore"

从XML的任意位置选择名为bookstore的节点。重点突出这个任意位置,它不受当前节点的影响,也就是说假如当前节点是在第 100 层(有点夸张),也可以选择第一层的名称为 bookstore的节点。

"."

选择当前节点

".."

选择当前节点的父节点,也就是上一层的节点。

"//title[@lang]"

选择带有lang属性,并且名为title的节点

"//title[@lang='eng']"

选择带有lang属性,并且lang属性值为eng,名为title的节点

"//book[price>30]"

选择名为book的节点,选择的节点必须有一个名为price的子节点,并且子节点的值要满足>30的条件

"//book[2]"

选择名为book的第二个节点,注意序号是从1开始,不是0

"//book[last()]"

选择左后一个名为book的节点

"//book[position()<=2]"

选择前2个名为book的节点

"//title//@lang"

选择名为title的节点的属性值,注意这里得到是属性,而不是节点

"//price[text()]"

选择名为price的节点的内容

"//title[@*]"

选择名为title的节点的所有属性值

"//bookstore/*/price"

*表示任意名字

"//title|//price"

选择名为title或者名为price的节点

"//book[contains(price, '99')]"

选择名为book的节点,选中的节点含有名为price的子节点,并且子节点值含有99字符

"//title[contains(@lang, 'en')]"

选择名为title,选中的节点含有名为lang的属性,并且属性值含有dn字符

"//title[@name='wu' and @lang='eng']"

选择名为title的节点,选中的节点含有name和lang属性,并且属性值分别为wu和eng

如果XML带有名字空间,例如:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<book>

  <title name="wu" lang="eng">Harry Potter</title>

  <price>29.99</price>

</book>

<book>

  <title lang="eng">Learning XML</title>

  <price>39.95</price>

</book>

</bookstore>

这种情况要使用xPath就必须带有名字空间,否则查询结构都为0。

举个例子,假设我已将名字空间http://schemas.microsoft.com/developer/msbuild/2003声明为ns,要使用之前说明过的

"//title[contains(@lang, 'en')]"

就必须写成这样的形式

"//ns:title[contains(@lang, 'en')]"

XML的xPath格式的更多相关文章

  1. xml的xPath解析规则

    一,为什么要用xpath技术 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! 二,xpath的规则 2.1,/根元素的案例 /AAA 选择根元素AAA       ...

  2. 【&period;net 深呼吸】聊聊WCF服务返回XML或JSON格式数据

    有时候,为了让数据可以“跨国经营”,尤其是HTTP Web有关的东东,会将数据内容以 XML 或 JSON 的格式返回,这样一来,不管客户端平台是四大文明古国,还是处于蒙昧时代的原始部落,都可以使用这 ...

  3. Parse xml&sol;json&lbrack;xpath&sol;jpath&rsqb;

    import groovy.util.XmlSlurper import groovy.util.XmlParser import com.eviware.soapui.support.GroovyU ...

  4. php返回json&comma;xml&comma;JSONP等格式的数据

    php返回json,xml,JSONP等格式的数据 返回json数据: header('Content-Type:application/json; charset=utf-8'); $arr = a ...

  5. Ajax中XML和JSON格式的优劣比较

    刚做完一个小的使用Ajax的项目.整个小项目使用JavaScript做客户端,使用PHP做服务器端.利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式.做完后基本做一个简单 ...

  6. java XML转JSON格式

    标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报  分类: [J2SE基础](20)  代码如下所示,从这个例子中发现了代码库的重要性,如果 ...

  7. 通过notepad&plus;&plus;将混乱的xml配置的格式进行美化

    需求描述: 最近在进行hbase配置文件的修改之后,发现xml文件的格式很不美观, 然后,在网上找了些方法,实测,通过notepad++的xml tools插件就可 达到美化效果. 操作过程: 1.以 ...

  8. &period;net WebAPI返回xml、json格式

    WebAPI返回xml.json格式简单示例 using System.Net.Http.Formatting; public class TestController : ApiController ...

  9. C&num;操作Xml:XPath语法 在C&num;中使用XPath示例

    XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

随机推荐

  1. SSRS Reports 2008性能优化案例二

    前几天一同事反映海外工厂A的SSRS报表比较慢,让我检查优化一下.于是我检查了下2015-07-13到2015-07-15 12:00这段时间报表的耗时记录 USE [ReportServer];   ...

  2. SQL 常用函数及示例

    --SQL 基础-->常用函数 --================================== /* 一.函数的分类 SQL函数一般分为两种 单行函数 基于单行的处理,一行产生一个结果 ...

  3. java8的接口新特性(可以有方法体的接口)&lpar;转&rpar;

    以前Java的接口中定义的方法不可以有方法体,这样试用起来,有时候听不方便的,当有多个类实现了想同的接口,接口中某一些方法的实现体可能都是一样的时候,这样无疑浪费了很多时间,在写重复的代码(或者说co ...

  4. 支付宝支付集成,上传RSA公钥一直显示格式错误

    碰到同样的问题,支付宝的问题,已有解决方案:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner

  5. 光迁PING值延迟计算!以及到中国最快的美国机房是哪个机房&quest;

    美国圣安娜KT机房/美国KT机房/美国KT服务器 KT机房是美国直达大陆最快的机房,ping值一般为195MS,是做web服务器的首选机房,深受中小站长的欢迎! 我们平时测试美国服务器的速度,都是通过 ...

  6. perl命令&plus;关键字

    来源: http://www.cnblogs.com/itech/archive/2012/11/01/2749666.html http://www.garybeene.com/vb/tut-per ...

  7. 提高数据库的查询速率及其sql语句的优化问题

    在一个千万级的数据库查寻中,如何提高查询效率? 1)数据库设计方面:  a.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. b.应尽量避免在 ...

  8. (三十四)NavigationController初步

    为了了解底层,首先不基于UIWindow而基于UIWindow来创建App. 由于Xcode6没有以前的基于UIWindow的空项目,所以选择SingleView,然后删除storyboard,移除B ...

  9. Laravel 框架 基础(一)

    Laravel 框架 laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化 Eloquent 全局作用域.可选择的认证脚手架.中间件组. ...

  10. PHP安装Eclipse与使用

    PHP有非常多相当不错的开发工具,如Zend Studio.NetBeans.phpdesigner等,但对于习惯Java编程的程序员们来说,最经常使用的还要属Eclipse. 那么Eclipse能用 ...