Xml SelectNodes 与 XPath

        XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法。SelectNodes 使用 XPath 来选取节点。

重要语法:

SelectNodes("item")

        从当前节点的儿子节点(仅限儿子,不包含孙子、重孙噢)中选择名称为 item 的节点。

SelectNodes("/item")

        从根节点的儿子节点中选择名称为 item 的节点。

SelectNodes("//item")

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

SelectNodes(".")

        选择当前节点。

SelectNodes("..")

        选择当前节点的父节点。

SelectNodes("//item[@name]")

        在 SelectNodes("//item") 的基础上,增加了一个限制,就是要求拥有 name 属性。

SelectNodes("//item[@name='111']")

        在 SelectNodes("//item[@name]") 的基础上,增加了一个限制,就是要求 name 属性值为 111。注意语法中有引号;如果没有引号,则表示是数字类型,对于数字类型可以使用大于号、小于号等,比如:SelectNodes("//item[@v>333]")。

SelectNodes("//item[1]")

        选择第一个 item,注意是第一个,不是第二个。还有这里是指亲兄弟间的第一个 item,也就是说:父级若有三个 item,则选择第一个;若父级第二个 item 的有两个名称同样为 item 的儿子,则第一个儿子会被选择出来;若父级第三个 item 的也有两个名称同样为 item 的儿子,则第一个儿子也会被选择出来…… 

SelectNodes("//item[last()-1]")

        倒数第二个节点,同样是指亲兄弟间的倒数第二个。

SelectNodes("//item[position()<=2]")

        位置为第一和第二的节点(第一个节点的 position() 为 1),同样是指亲兄弟间的位置。

SelectNodes("//@name")

        SelectNodes("/root/item/@name") 取 item 的 name 属性

        选择 name 属性,注意这下选择的是属性,而不是节点了。用 Value 属性获取属性集合的属性值。

SelectNodes("/root/item")

        根节点 root 下的 item 儿子节点。

SelectNodes("/root//item")

        根节点 root 下的不管是儿子、孙子、重孙子……,只要是名称为 item 的统统选取出来。

通配符:

        可用 * 表示任意节点名称,比如 SelectNodes("/channel/*/item");

        用 @* 表示任意属性;

        用 node() 表示任意类型的节点;

        用 text() 表示文本类型的节点,实际上也就是表示取文本节点(元素节点下面是文本节点,文本节点下面才是文字)。

运算符:

        | 表示或。SelectNodes("//item|//channel"),选择 item 或 channel 节点。

时间: 2024-11-03 01:17:27

Xml SelectNodes 与 XPath的相关文章

C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍

原文:C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍 一. SelectNodes,SelectSingleNode总是返回NULL    下面以一个简单的xml为例: <?xml version="1.0"?> <message xmlns="http://www.mydomain.com/MyDataFeed" xmlns:xsi=http://www.w3.org/2001/XM

php+xml编程之xpath的应用实例_php技巧

本文实例讲述了php+xml编程之xpath的应用.分享给大家供大家参考.具体如下: xpath设计的核心思想:迅速定位到你所需要的元素(或者节点).PHP 文件在载入xml文件和创建DOMDocument 对象后,就可以开始建立DOMXPath 对象.建立形式如下: 复制代码 代码如下: $xpath = new DOMXPath($xmldoc); 建立 DOMXPath 对象后,就可以开始使用 DOMXPath::query()方法,找到你需要的元素: 复制代码 代码如下: $item =

xml SelectNodes怎么用的?

问题描述 有一个XML结构的数据,我用SelectNodes选择某些符合条件的节点,docxml.SelectNodes("root/[name='"+e.getAttribute("name")+"']");但提示"不支持此方法或者属性",有哪位有这方面经验的?传授一下. 解决方案 解决方案二:这个方法用的时候由于受到ie兼容性的问题so当你用selectnotes的时候前面请加一段代码,先发表,代码见下一楼.解决方案三:x

认识XML中的XPath介绍

xml 之所以要引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路径:通过文件管理路径,可以按照一定的规则查找到所需要的文件:同样,依据XPath所制定的规则,也可以很方便地找到XML结构文档树中的任何一个节点. 不过,由于XPath可应用于不止一个的标准,因此W3C将其独立出来作为XSLT的配套标准颁布,它是XSLT以及我们后面要讲到的XPointer的重要组成部分. 在介绍XPath的匹配规则之前,我们先来看一些有关XPat

Sql server的xml.value中, XPath使用text()函数的重要性

被多次问到,为什么在DBA的规范中,会要求在解析xml值时,value 方法的 XPath 中要加 text() 函数,看起来似乎加与不加得到的结果都是一样的. 下面的测试脚本说明使用 text() 的区别,以及为什么要求使用它. DECLARE     @xml xml SET @xml = N' <a/> <b>b     <c>c</c> </b>'; SELECT  @xml.value('(/a)[1]', 'varchar(10)')

.NET(C#):使用XPath查询带有命名空间(有xmlns)的XML

原文http://www.cnblogs.com/mgen/archive/2011/05/24/2056025.html 众所周知,XmlDocument可以进行XPath查询,但实际上这里所说的XPath查询仅限于没有命名空间(没有xmlns属性)的XML,一旦遇到有命名空间的XML,对应XPath查询都会无结果. 比如下面这个XML <a xmlns="mgen.cnblogs.com">     <b>ccc</b> </a> X

xpath对ajax的完全操作,添加修改删除xml节点

提示:您可以先修改部分代码再运行 <!-----------------小马哥xpath对ajax的完全操作,添加修改删除xml节点---------------------> <button onclick="alert(xml.lookxml())" id=button1 name=button1>查看XML标签</button> <hr> 添加节点:姓名:<input type=text id="name"

使用XPATH对XML数据进行解析

这一篇我总结一下,如何利用XPATH及相关技术对XML数据文档进行查询和处理 1. 首先还是来看一下范例数据 <?xml version="1.0" encoding="utf-8" ?> <Orders><!--所有订单--> <Order OrderID="1" OrderDate="2008-12-17"><!--一个订单--> <OrderItems&g

XML document processing in Java using XPath and XSLT

XML document processing in Java using XPath and XSLT More like this XSL gives your XML some style Easy Java/XML integration with JDOM, Part 2 Easy Java/XML integration with JDOM, Part 1 Discover how XPath and XSLT can significantly reduce the complex