XPath 多条件查询语句
2015-08-22 03:34
856 查看
有这样一个xml:
要求查找含有 data节点满足 type = String 且 inner text = Alpha 的所有cell 节点
Xpath 为: //cell[data[text()=’Alpha’] and data[@type=’String’]]
或 //cell[data[text()=’Alpha’ and @type=’String’]]
分析下://cell表示搜索所有的cell节点
[]里面是条件,满足了这个条件的cell节点才会被搜索出来
有@的表示节点的属性,节点的value用text()=“”表示
data[text()=’Alpha’ and @type=’String’] 有这样(innertext = Alpha 且 type = String )的子节点才能被搜索出来
多个条件用and 连接
如果在加一层结点
<?xml version=/"1.0/" encoding=/"ISO-8859-1/"?> <Test> <cell><data type="String">Alpha</data></cell> <cell><data type="Number">100</data></cell> <cell><data type="Number">200</data></cell> <cell><data type="Boolean">true</data></cell> </Test>
要求查找含有 data节点满足 type = String 且 inner text = Alpha 的所有cell 节点
Xpath 为: //cell[data[text()=’Alpha’] and data[@type=’String’]]
或 //cell[data[text()=’Alpha’ and @type=’String’]]
分析下://cell表示搜索所有的cell节点
[]里面是条件,满足了这个条件的cell节点才会被搜索出来
有@的表示节点的属性,节点的value用text()=“”表示
data[text()=’Alpha’ and @type=’String’] 有这样(innertext = Alpha 且 type = String )的子节点才能被搜索出来
多个条件用and 连接
如果在加一层结点
string xmlPayLoad = "<?xml version=/"1.0/" encoding=/"ISO-8859-1/"?>" + "<test>" + @"<row>" + "<cell><data type=/"String/">Alpha</data></cell>" + "<cell><data type=/"Number/">100</data></cell>" + "<cell><data type=/"Number/">200</data></cell>" + "<cell><data type=/"Boolean/"></data></cell>" + "</row>" + "<row>" + "<cell><data type=/"String/">Gamma</data></cell>" + "<cell><data type=/"Number/">12</data></cell>" + "<cell><data type=/"Number/">25</data></cell>" + "<cell><data type=/"Boolean/">1</data></cell>" + "</row>" + "</test>";
XmlDocument document = new XmlDocument(); document.LoadXml(xmlPayLoad); string xmlPath = "//row[cell/data[text()='1'] and cell/data[@type='Boolean']]"; XmlNodeList nodeList = document.SelectNodes(xmlPath); Console.WriteLine("nodeList.Count:" + nodeList.Count); Console.ReadLine();
相关文章推荐
- iOS链式编程框架介绍之LinkBlock(iOS链式编程)
- Ambari在线repo安装
- 正则表达式编程实例
- MyBatis参数传入集合之foreach动态sql
- Ambari离线安装
- MR案例:外连接代码实现
- MyBatis的动态SQL详解
- HTML5 web workes实现多线程
- android使用junit进行单元测试
- [Android] 输入系统(一)
- mybatis中merge into批量使用问题
- myBatis批量添加,修改和删除
- 通过 Jersey 客户端 API 调用 REST 风格的 Web 服务
- 突然发现的好东西
- Server端接收了不一样的请求,在服务端要如何识别并操作呢
- 入门级码农,该不该写技术博客
- MR案例:内连接代码实现
- Linux升级Python版本
- 【8-21】java学习笔记03
- 高级JS内容——JavaScript高级程序设计笔记