今天在网上看到一个关于selectNodes与selectSingleNode的用法的区别。

由于之前没有特别在意,因而今日看见是很是惊异。特复制过来,供大家一起学习!

其中文中提到了最重要的区别是在运用操作后的变化。

selectnodes: selectNodes和ChildNodes获取XML内容数组的差异性

我们在使用XML进行查询或者变更数据的时候,需要注意两个很相近但结果相差很大的用法,如下:

1: XmlDocument doc = new XmlDocument();

2: Doc.loadXml(strXml);

3: XmlNodeList xnlListOne = doc.selectNodes(“//Nodes/Node”);

4: XmlNodeList xnlListTwo = doc.selectSingleNode(“//Nodes”).ChildNodes;

乍一看,xnlListOne和xnlListTwo都是获取当前Xml文档中的Node数组,如果我们没有变动该Xml文档,则两者没有任何不同,但是一旦我们在后面的操作中添加或者删除了其中的Node节点的话,情况就不一样了,变动后,当我们使用我们前面获取的xnlListOne和xnlListTwo进行遍历操作的时候,我们会发现,前者不会有任何变动,而后者会根据文档内容的变动而实时更新!

这个特性在前台页面的脚本中也会有所出现,例如div嵌套时,获取其嵌套子div时候,使用ChildNodes来获取也会实时更新,这个特性是因为他们都是通过指针指向操作其内容的,其内部应该伴随这一次遍历操作,而获取的结果数组是一次计算后的结果,已经通过开辟新内存的方式进行存储,故而不会受到影响,当然,我们也可以通过这个特性来做一些特别的功能。

http://www.cnblogs.com/xuhuan/articles/1418701.html

转载于:https://www.cnblogs.com/binlyzhuo/archive/2010/07/01/1769353.html

关于selectNodes与selectSingleNode的用法的区别相关推荐

  1. @ini_get php,php中get_cfg_var()和ini_get()的用法及区别_php技巧_脚本之家

    本文实例讲述了php中get_cfg_var()和ini_get()的用法及区别.分享给大家供大家参考.具体分析如下: php里get_cfg_var()和ini_get()都是取得配置值的函数,当你 ...

  2. return true Java_[Java教程]js中return,return true,return false的用法及区别

    [Java教程]js中return,return true,return false的用法及区别 0 2015-11-16 23:00:03 1.语法及返回方式 ①返回控制与函数结果 语法为:retu ...

  3. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  4. python ord()与chr()用法以及区别

    python ord()与chr()用法以及区别 原文:http://blog.csdn.net/yulock/article/details/52904035 ord()函数主要用来返回对应字符的a ...

  5. matlab ezplot fplot,【转】Matlab plot fplot ezplot用法与区别

    [转]Matlab plot fplot ezplot用法与区别 (2012-04-19 20:26:00) 标签: matlab fplot ezplot 数学函数 曲线 杂谈 函数plot 是绘制 ...

  6. TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别

    TF:tensorflow框架中常用函数介绍-tf.Variable()和tf.get_variable()用法及其区别 目录 tensorflow框架 tensorflow.Variable()函数 ...

  7. Spring中@Resource与@Autowired、@Qualifier的用法与区别

    Spring中@Resource与@Autowired.@Qualifier的用法与区别 1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法 ...

  8. break与continue的的用法以及区别

    /* break与continue的的用法以及区别 1. 当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执行 continue语句后的 ...

  9. typedef和#define的用法与区别

    typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...

最新文章

  1. C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组
  2. Callable、Future阻塞队列阻塞栈
  3. Java 中的 XML:Java 文档模型的用法
  4. 图书馆自动化系统 Evergreen 3.3 发布,迁移到 Angular
  5. 安卓入门系列-03安卓的开发方式(逻辑与视图分离)
  6. java class 字符串_java基础知识四 math类 字符 字符串 控制台输入输出 StringBuilder与StringBuffer...
  7. 长度、面积、体积的相似比原理
  8. python在线学习直播-马哥教育官网-专业Linux培训班,Python培训机构
  9. 基于R语言的贝叶斯网络模型、现代贝叶斯统计学方法
  10. Microsoft SQL Server Management Studio的快捷功能 与 搜狗五笔冲突记
  11. EmEditor16免安装破解版
  12. C#提取字模[复制即用]
  13. matlab中或者的表达,MATLAB
  14. php 腾讯短信接口api,ThinkPHP5——接入腾讯云短信API
  15. iOS开发——keychain的使用
  16. 20220727使用汇承科技的蓝牙模块HC-05配对手机进行蓝牙串口的演示
  17. Unity3D教程:手游开发常用排序算法 -下
  18. 移动拨号上网开热点(不是360开热点,而是使用电脑自带的热点功能)详解
  19. linux u盘分区 mdev 卸载问题,迅为开发板最小Linux自动挂载TF卡/U盘等存储设备
  20. 永不消逝的电波(四):从无线电角度揭秘定位劫持

热门文章

  1. java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包
  2. matlab计算流函数,hanyeah
  3. git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式
  4. Android入门(一) | Android Studio的配置与使用
  5. leetcode175. 组合两个表(SQL)
  6. leetcode348. 判定井字棋胜负 好麻烦的代码
  7. leetcode38. 外观数列
  8. leetcode240. 搜索二维矩阵 II
  9. (五)nodejs循序渐进-回调函数和异常处理(基础篇)
  10. Python(2)-第一个python程序、执行python程序三种方式