zoukankan      html  css  js  c++  java
  • 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)







    版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
    个人微信公众号
    创业QQ群:617713515
    Donation(扫码支持作者):支付宝:
    Donation(扫码支持作者):微信:
  • 相关阅读:
    HDU 2112 HDU Today
    HDU 1869 六度分离
    HDU 3790 最短路径问题
    HDU2066 一个人的旅行
    HDU1596 find the safest road(最短路)
    HDU 1254 推箱子(双重bfs)
    HDU 1429 胜利大逃亡(续) (bfs+状态压缩)
    HDU 1045 Fire Net
    数据结构之单链表头插法,尾插法
    Java--会移动、反弹的球
  • 原文地址:https://www.cnblogs.com/cyq1162/p/1081889.html
Copyright © 2011-2022 走看看