关于selectNodes与selectSingleNode的用法的区别
今天在网上看到一个关于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的用法的区别相关推荐
- @ini_get php,php中get_cfg_var()和ini_get()的用法及区别_php技巧_脚本之家
本文实例讲述了php中get_cfg_var()和ini_get()的用法及区别.分享给大家供大家参考.具体分析如下: php里get_cfg_var()和ini_get()都是取得配置值的函数,当你 ...
- 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 ...
- 【Java学习笔记之二十九】Java中的equals和==的用法及区别
Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...
- python ord()与chr()用法以及区别
python ord()与chr()用法以及区别 原文:http://blog.csdn.net/yulock/article/details/52904035 ord()函数主要用来返回对应字符的a ...
- matlab ezplot fplot,【转】Matlab plot fplot ezplot用法与区别
[转]Matlab plot fplot ezplot用法与区别 (2012-04-19 20:26:00) 标签: matlab fplot ezplot 数学函数 曲线 杂谈 函数plot 是绘制 ...
- TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别
TF:tensorflow框架中常用函数介绍-tf.Variable()和tf.get_variable()用法及其区别 目录 tensorflow框架 tensorflow.Variable()函数 ...
- Spring中@Resource与@Autowired、@Qualifier的用法与区别
Spring中@Resource与@Autowired.@Qualifier的用法与区别 1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法 ...
- break与continue的的用法以及区别
/* break与continue的的用法以及区别 1. 当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执行 continue语句后的 ...
- typedef和#define的用法与区别
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...
最新文章
- C语言在一个有序数组里插入一个元素,使其成为一个新的有序数组
- Callable、Future阻塞队列阻塞栈
- Java 中的 XML:Java 文档模型的用法
- 图书馆自动化系统 Evergreen 3.3 发布,迁移到 Angular
- 安卓入门系列-03安卓的开发方式(逻辑与视图分离)
- java class 字符串_java基础知识四 math类 字符 字符串 控制台输入输出 StringBuilder与StringBuffer...
- 长度、面积、体积的相似比原理
- python在线学习直播-马哥教育官网-专业Linux培训班,Python培训机构
- 基于R语言的贝叶斯网络模型、现代贝叶斯统计学方法
- Microsoft SQL Server Management Studio的快捷功能 与 搜狗五笔冲突记
- EmEditor16免安装破解版
- C#提取字模[复制即用]
- matlab中或者的表达,MATLAB
- php 腾讯短信接口api,ThinkPHP5——接入腾讯云短信API
- iOS开发——keychain的使用
- 20220727使用汇承科技的蓝牙模块HC-05配对手机进行蓝牙串口的演示
- Unity3D教程:手游开发常用排序算法 -下
- 移动拨号上网开热点(不是360开热点,而是使用电脑自带的热点功能)详解
- linux u盘分区 mdev 卸载问题,迅为开发板最小Linux自动挂载TF卡/U盘等存储设备
- 永不消逝的电波(四):从无线电角度揭秘定位劫持
热门文章
- java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包
- matlab计算流函数,hanyeah
- git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式
- Android入门(一) | Android Studio的配置与使用
- leetcode175. 组合两个表(SQL)
- leetcode348. 判定井字棋胜负 好麻烦的代码
- leetcode38. 外观数列
- leetcode240. 搜索二维矩阵 II
- (五)nodejs循序渐进-回调函数和异常处理(基础篇)
- Python(2)-第一个python程序、执行python程序三种方式