注:以下举例仅针对xml自定义了命名空间的情况,如果是其他情况,请参照他人博客~

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;

private XmlDocument xmlDoc;
        protected void Button1_Click(object sender, EventArgs e)
        {
            LoadXml();

————申明xml命名空间管理对象
            XmlNamespaceManager m = new XmlNamespaceManager(xmlDoc.NameTable);   

————添加命名空间 
            m.AddNamespace("fuck", "http://www.google.com/schemas/sitemap/0.84");       

————注意用法,原本路径是“urlset/url”,须改写为“/fuck:urlset/fuck:url”,依此类推。
            XmlNodeList nodelist = xmlDoc.SelectNodes("/fuck:urlset/fuck:url",m);         

if (nodelist == null)
            {
                Page.RegisterStartupScript("", "alert('列表是空的!')");
            }
            else
            {
                foreach (XmlNode node in nodelist)
                {
                    if (node["priority"].InnerText == "0.4")
                    {
                        node["priority"].InnerText = "0.8";
                    }
                }
                xmlDoc.Save(Server.MapPath("XML/test2.xml"));
            }
        }
        private void LoadXml()
        {
            xmlDoc = new XmlDocument();
            xmlDoc.Load(Server.MapPath("XML/test1.xml"));
        }

下面是我的xml文件——

———这个xmlns属性值就是xml自定义的命名空间!上面命名空间的值就是根据这里来写的!

   <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">      
- <url>
   <loc>http://www.baidu.com/</loc>
   <lastmod>2013-12-05</lastmod>
   <changefreq>daily</changefreq>
   <priority>0.5</priority>
   </url>
-  <url>
   <loc>http://www.baidu.com/Default.htm</loc>
   <lastmod>2013-12-05</lastmod>
   <changefreq>weekly</changefreq>
   <priority>0.4</priority>
   </url>
</urlset>

当使用xmldocument.selectnodes()时,如果xml文件中有自定义的命名空间的话(也就是根节点属性值),在使用selectnodes()函数时,一定要记得增加命名空间。

关于这一点,官网上也有说明:

Remarks


XPath expressions can include namespaces. Namespace resolution is supported using the XmlNamespaceManager. If the XPath expression includes a prefix, the prefix and namespace URI pair must be added to the XmlNamespaceManager.

在此附上官网链接,说的很详细,还有例子。XmlNode.SelectNodes Method (String, XmlNamespaceManager)

xmlDoc.SelectNodes用法(获取不到节点时注意事项)的更多相关文章

  1. ztree 获取CheckBox选中节点时,不获取选中上级父节点

    //将第三个参数改为false,表示不去勾选父节点下的所有子节点 zTreeObj.checkNode(node, true, false); setting.check.chkboxType = { ...

  2. js使用childnodes获取子节点时多了text节点

    当我们获取标签的节点时如果使用childnodes发现它会把空格和回车都算着节点,明明里面才有3个节点,结果显示5个,而且childnodes[0]="text" 在IE浏览器中没 ...

  3. ztree获取选中节点时不能进入可视区域出现BUG如何解决

    zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree 的特点编辑 ● zTree v3.0 将核心代码按照功能进 ...

  4. 警惕rapidxml的陷阱:添加节点时,请保证变量的生命周期

    http://www.cnblogs.com/chutianyao/p/3246592.html 项目中要使用xml打包.解析协议,HQ指定了使用rapidxml--号称是最快的xml解析器. 功能很 ...

  5. JavaScript获取HTML DOM节点元素详解(转)

    在Web运用程序特别是Web 2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式.内容等.如何获取要更新的元素,是首先要处理的疑问. 51CTO推荐阅读:JavaScript DOM文档 ...

  6. jQuery之导航菜单(点击该父节点时子节点显示,同时子节点的同级隐藏,但是同级的父节点始终显示)

    注:对于同一个对象不超过3个操作的,可直接写成一行,超 过3个操作的建议每行写一个操作.这样可读性较强,可提高代码的可读性和可维护性 核心代码: $(".has_children" ...

  7. Activiti6.0获取下一节点任务的心路历程

    在我的开发任务中,我被分配了一个像下一个节点审批人发送短信的任务,这个任务看起来非常的简单,但在开发过程中遇到了许多的坑,在这里进行记录,如果你想要快速知道结果,请看代码版本(3). 首先,就是获取下 ...

  8. 获取$(this)子节点对象的方法

    获取$(this)子节点对象的方法: 1.children()方法: children() 方法返回被选元素的所有直接子元素. 该方法只会向下一级对 DOM 树进行遍历. 2.find()方法: fi ...

  9. Swift3.0 iOS获取当前时间 - 年月日时分秒星期

    Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...

随机推荐

  1. [iOS基础控件 - 6.7.1] 微博展示 代码

      Controller: // // ViewController.m // Weibo // // Created by hellovoidworld on 14/12/4. // Copyrig ...

  2. .Net中的Placeholder控件

    NET中的placeholder控件用来做什么的?其实PLACEHOLDER控件,是用来做动态加载用户自定义控件时,一个占位置作用的控件,比如 在从一个Web页面转换到另一个Web页面时,你的ASP. ...

  3. 写的非常好的文章 C#中的委托,匿名方法和Lambda表达式

    简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ...

  4. Bugs及解决方案列表

    Bugs及解决方案列表(以下实例默认运行环境都为Standard mode): 如何在IE6及更早浏览器中定义小高度的容器? 方法: #test{overflow:hidden;height:1px; ...

  5. 对struts2的基本知识和环境的搭建(配图解)

    Struts2的优点: Struts2是由webwork2发展过来的.属于无侵入式设计.而struts1是入侵是设置. Struts2跟servlet API没有紧密的联系. struts2提供了拦截 ...

  6. Yale CAS + .net Client 实现 SSO 的完整版

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心

    C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...

  8. ABAP 常用系统变量

    SY-ABCDE 常量,A-Z字母表SY-BATCH 后台的程序运行SY-COLNO:当前选定列的列号SY-CPAGE 列表的当前显示页SY-CUCOL 屏幕,PAI 的水平光标位置SY-CUROW: ...

  9. [Effective C++ --013]以对象管理资源

    这一节基本讲述的是将资源放进管理对象,防止忘记释放资源. 1.一般New和Delete使用场景 void fun() { SimpleClass* pSimpleClass1 = new Simple ...

  10. 创建线程(Background Thread)的N种方式

    第一.Thread类 Thread类是实例化线程的主要方法:一个Thread实例管理一个线程,即执行序列.通过简单实例化一个对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理. ...