[xML ]SelectNodes的用法

之前简单找个SelectNodes的例子看了看,写了读取XML文件节点的程序,但是节点数目有限制,后来仔细看看,是自己没完全弄清SelectNodes的用法,原来有这么多,看来那个类的结构要改了,之后将更加方便。

网上找到如下资料:

XPath 是 XML 的内容,这里 SelectNodes 是 javascript 中 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 节点

xml selectnodes的更多相关文章

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

    一. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例: <?xml version="1.0"?> <mes ...

  2. 黄聪:C#操作xml SelectNodes,SelectSingleNode通过 xPath 定位class包含Contains的DIV

    一. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例: <?xml version="1.0"?> <mes ...

  3. C#操作xml SelectNodes,SelectSingleNode总是返回NULL

    SelectNodes,SelectSingleNode总是返回NULL 原文地址:http://www.cnblogs.com/linlf03/archive/2011/11/30/2268705. ...

  4. C#操作XML的通用方法总结

    转载至http://www.cnblogs.com/pengze0902/p/5947997.html 1.创建xml 复制代码 /// <summary> /// 创建XML文档 /// ...

  5. C#操作XML总结

    1.using System.Xml; using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xm ...

  6. XML增、删、改

    今天有个需求需要操作xml节点.突然见遗忘了许多.上网看了些资料.才整出来.脑袋真不够用.在这里把我找到的资料共享一下.方便以后使用.本文属于网摘/ 一.简单介绍 using System.Xml; ...

  7. XML文件数据操作

    #region XML序列化文件和反序列化 /// <summary> /// 通用类的保存函数,可以将已经声明过可序列化的类以文件方式保存起来. /// 保存格式分为 XML明文式和 二 ...

  8. C# XML操作

    一.简单介绍 using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xml.Load(path); ...

  9. 简介C#读取XML的两种方式

    简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的 ...

随机推荐

  1. LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci 题解

    题目传送门 如果之前推过斐波那契数列前缀和就更好做(所以题目中给出了). 斐波那契数列前缀和题目链接 先来推一下斐波那契数列前缀和: \[\sum\limits_{i=1}^nf(i) \] 其中 \ ...

  2. Linux系统之《消息队列》入手应用

    目录 简述 代码 编译 运行 简述 消息队列是Linux进程间通信方式之一,消息队列一般是用于简单的通信,数据量不大,通信不频繁的情况.如果交互频繁或者数据量大就不适合了. 代码 下面直接上代码,发送 ...

  3. 07-NABCD项目分析

    时    间:2020.3.31 参加人员:向瑜.赵常恒.刘志霄 讨论记录内容: NABCD模型 ·N(need)-向瑜 你的创意解决了用户的什么需求? 1. 随时随地记录个人收支的明细,清楚明白的知 ...

  4. idea括号选中时出现一条下滑线(突出显示)打开或关闭方法

    打开设置 Editor->code Editing->Matched brace取消这个对勾

  5. HourglassNet

  6. Mysql Column 'xxxxx' in field list is ambiguous"

    使用了关联查询,两张表有相同的字段,所以说取值含糊不清: 使用别名.列名解决: 如 a.description

  7. java Struts 多种表单写法

    1.html:form(struts标签) 缺点:必须指定一个有效的action属性. 优点:可以使用struts token机制. 调用方法通过submit的name属性. <table al ...

  8. 将Asp.Net Core3.1项目,使用Docker 部署到Centos 8

    一.准备工具 Win 10 Centos 8 Visual Studio 2019 Docker Desktop  下载地址:https://download.docker.com/win/stabl ...

  9. Vue 事件的$event参数=事件的值

    template <el-table :data="dataList"> <el-table-column label="id" prop=& ...

  10. python对端口进行扫描

    使用cocket模块配合多线程对端口进行扫描,后续功能正在思考ing. import socket from multiprocessing.dummy import Pool as ThreadPo ...