Xml让人郁闷的SelectNodes方法

简介:

SelectNodes(xpath,namespace)方法中
无论是xmlDoc.SelectNodes(xpath,namespace) //假设xmlDoc为根节点,整个文档下的查询
还是xmlDoc.ChildNodes[i].SelectNodes(xpath,namespace) //节点下的查询

两个查询的结果一样:都会把整个文档符合xpath语法条件的都给查出来了
事实上我们所要的只是要在某一节点下符合xpath语法的结果


经过一鄱查询与研究解决之道后...
发现用xmlDoc.ChildNodes[i].Clone().SelectNodes(xpath,namespace)可以解决
即克隆出一节点后,再从克隆的节点中查询即可找出所需要的结果

但另一问题产生了,既然查询的结果是克隆后出来,那就算结果节点被改变后,原来的xmlDoc也不会有变化

要关联变化,暂时的方法是遍历xmlDoc.ChildNodes[i],从中找出符合条件的节点,再将结果节点进行替换

总结:
既然最后还要遍历替换结果,那之前的克隆节点查询显得有点就多余了,一开始直接遍历不就完了

结论:
那在某一节点下的Node.SelectNodes方法还有意义么?
SelectNodes只能用在整个xml文档中查询了!

 

编辑下最终答案:

今天回头又遇到,记录一下,正确的写法是:
子节点.SelectNodes("descendant::节点名称",namespace)




相关文章
|
Web App开发 XML 前端开发
|
Web App开发 XML .NET
Linq to XML 读取XML 备忘笔记
本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html Linq to XML 读取XML 备忘笔记 最近一个项目中有要用到 xml 读取,我首先想到的是使用 Linq 读取(XML 解析感觉有点麻烦),项目完成,现抽取其内容,作如下笔记备忘.
1160 0
|
XML Java 数据格式
IDEA中修改XML等文件的默认单行注释(以前还以为只能那个丑样子)
IDEA中修改XML等文件的默认单行注释(以前还以为只能那个丑样子)
IDEA中修改XML等文件的默认单行注释(以前还以为只能那个丑样子)
|
XML 存储 JSON
XML 教程(一文彻底搞懂XML)
只有启航 才会到达理想的目的地
3233 0
XML 教程(一文彻底搞懂XML)
|
Android开发 数据库
安卓开发_浅谈主配置文件(AndroidManifest.xml)
AndroidManifest.xml本质:是整个应用的主配置清单文件包含:该应用的包名,版本号,组件,权限等信息作用:记录该应用的相关的配置信息 一、常用标签(1)、全局篇(包名,版本信息)(2)、组件篇(四大组件)、(3)、权限篇(申请权限和定义权限)1、全局篇(1)、应用的包名以及版本信息的管理package="com.
954 0
|
XML 存储 JavaScript
【JavaWeb】一篇文章搞懂XML(一)
【JavaWeb】一篇文章搞懂XML(一)
|
XML Java 数据格式
【JavaWeb】一篇文章搞懂XML(二)
【JavaWeb】一篇文章搞懂XML(二)
|
10月前
|
XML JSON 数据格式
xml文档解析报错解决办法
xml文档解析报错解决办法

相关课程

更多