XML的xPath格式
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格式的更多相关文章
- xml的xPath解析规则
一,为什么要用xpath技术 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! 二,xpath的规则 2.1,/根元素的案例 /AAA 选择根元素AAA ...
- 【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据
有时候,为了让数据可以“跨国经营”,尤其是HTTP Web有关的东东,会将数据内容以 XML 或 JSON 的格式返回,这样一来,不管客户端平台是四大文明古国,还是处于蒙昧时代的原始部落,都可以使用这 ...
- Parse xml/json[xpath/jpath]
import groovy.util.XmlSlurper import groovy.util.XmlParser import com.eviware.soapui.support.GroovyU ...
- php返回json,xml,JSONP等格式的数据
php返回json,xml,JSONP等格式的数据 返回json数据: header('Content-Type:application/json; charset=utf-8'); $arr = a ...
- Ajax中XML和JSON格式的优劣比较
刚做完一个小的使用Ajax的项目.整个小项目使用JavaScript做客户端,使用PHP做服务器端.利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式.做完后基本做一个简单 ...
- java XML转JSON格式
标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报 分类: [J2SE基础](20) 代码如下所示,从这个例子中发现了代码库的重要性,如果 ...
- 通过notepad++将混乱的xml配置的格式进行美化
需求描述: 最近在进行hbase配置文件的修改之后,发现xml文件的格式很不美观, 然后,在网上找了些方法,实测,通过notepad++的xml tools插件就可 达到美化效果. 操作过程: 1.以 ...
- .net WebAPI返回xml、json格式
WebAPI返回xml.json格式简单示例 using System.Net.Http.Formatting; public class TestController : ApiController ...
- C#操作Xml:XPath语法 在C#中使用XPath示例
XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
随机推荐
- AS3中释放优化的几条常识
as3中垃圾和堆弃物如不及时清理,会造成进程的速度方面授予限制,下面讲几点关于释放优化的几条内容. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉: 父对象内部的子对象被外部其 ...
- MarkDown/reST 文档发布流水线
相信很多朋友都在使用Markdown或者restructuredText格式来编写一些技术文档,也会把这些文档放在github上分享给社区.GitHub提供了很好的Markdown格式解析支持,但是这 ...
- 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目
自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...
- 回溯法、数独与N阶可达问题
回溯法是剪了枝的穷举,这是字面上的说法,不太好理解,不如讲解实例来的酸爽,于是引出了N阶可达问题: 有N个国家,每个国家有若干城市,小明要从中国(任意一个城市)出发,遍历所有国家(假设这个遍历顺序已经 ...
- Windows卸载软件出现蓝屏SYSTEM SERVICE EXCEPTION(VrvProtect_x64_2.sys)
今天给大家介绍一个卸载Windows上软件的工具Windows Installer Clean Up,可以卸载电脑上的很多控制面板里面卸载不掉的软件,或者卸载过程中出现问题的软件. (1)出现的现象: ...
- linux添加swap
一. 起因 发现云服务器重装后没有swap分区 于是我们分出一些物理内存做swap分区.. 二. 经过 (1)创建块文件 sudo dd if=/dev/zero of=/tmp/big_swap b ...
- hadoop端口配置指南
获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有 ...
- Linux CentOS 7 YUM 安裝 MySQL 5.7
MySQL YUM 源:http://dev.mysql.com/downloads/repo/yum/ # 下載源 $ wget http://dev.mysql.com/get/mysql57-c ...
- GC(垃圾回收)
Java程序的内存分配和回收都是由JRE在后台自动进行的.JRE会负责回收那些不再使用的内存,这种机制被称为垃圾回收GC.通常JRE会提供一条超级线程来进行检测和控制,一般都是在CPU空闲或内存不足时 ...
- 用python3实现linux的sed功能
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作.现在用python简单实现sed的主要命令,将old_text替换为ne ...