用XmlDocument创建一个文档,或者插入一个节点,默认会生成xmlns(命名空间)特性。

假定有一个xml文档如下结构:

<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>http://www.myWebSite.com/</loc>
</url>
<url>
<loc>http://www.myWebSite.com/MGID_17</loc>
</url>
<url>
<loc>http://www.myWebSite.com/MGID_18</loc>
</url>
</urlset>

现在要在urlset插入一个url节点,结果如下:

<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
…………………………
<url>
<loc>New Value Here</loc>
</url>

</urlset>

C#代码如下:

XmlDocument doc = new XmlDocument();
doc.Load("XMLFile1.xml");
XmlElement newEle = doc.CreateElement("url");
XmlElement subEle = doc.CreateElement("loc");
subEle.InnerText = "New Value Here";
newEle.AppendChild(subEle);
doc.DocumentElement.AppendChild(newEle);
doc.Save("d:\\try.xml");

结果会在url节点加上"xmlns",非常讨厌吧!

因为默认情况下,创建的Xml节点会自动判断其自身的NameSpace和父节点(比如url插入到urlset,自动判断url的Namespace和父节点的Namespace)是否一致,如果一致那么就不会再添加

因此解决方案是:

XmlDocument doc = new XmlDocument();
doc.Load("XMLFile1.xml");
XmlElement newEle = doc.CreateElement("url",doc.DocumentElement.NamespaceURI);
XmlElement subEle = doc.CreateElement("loc",newEle.NamespaceURI);
subEle.InnerText = "textboxValue";
newEle.AppendChild(subEle);
doc.DocumentElement.AppendChild(newEle);
doc.Save("d:\\try.xml");
结论:插入到哪个父节点,直接用红体字获取自身节点命名空间,然后插入即可

移除“xmlns”命名空间的更多相关文章

  1. 【转】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思

    wpf中的xmlns命名空间为什么是一个网址,代表了什么意思 http://blog.csdn.net/catshitone/article/details/71213371

  2. jdom xpath定位带xmlns命名空间的节点(转)

    jdom xpath定位带xmlns命名空间的节点 2013-06-29      0个评论       作者:baozhengw 收藏    我要投稿 关键词:jdom xpath xmlns 命名 ...

  3. 【C#】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思(转载)

    原文:https://blog.csdn.net/catshitone/article/details/71213371 新建一个wpf的项目,我们先来看下它默认的命名空间都是哪些? 可以看到xmln ...

  4. [玩转微信平台]XML的格式化- 如何去掉XML 文档头和命名空间

    前言 系统要求能够回复微信用户发过来的文本消息.实现中使用的实体对象进行XML的序列化的方式来实现XML消息.   微信平台的回复例子 http://mp.weixin.qq.com/wiki/14/ ...

  5. spring xmlns 记录

    spring xmlns 命名空间可从: http://www.springframework.org/schema/  根据需求选择  如:         1.选择 : aop           ...

  6. XML命名空间详解

    http://happylongnv.blog.hexun.com/48859954_d.html 目的:解决同一个元素在相同文件中代表不同含义的问题.因为XML文档中使用的元素不是固定的,那么两个不 ...

  7. 第一百七十一节,jQuery,高级事件,模拟操作,命名空间,事件委托,on、off 和 one

    jQuery,高级事件,模拟操作,命名空间,事件委托,on.off 和 one 学习要点: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one jQuery 不但封装了大量常用的事 ...

  8. XAML实例教程系列 - 命名空间(NameSpace) 三

    XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...

  9. JavaScript高级程序设计30.pdf

    第12章 DOM2和DOM3 DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3则在这个结构的基础上引入了更多的交互能力,也支持更高级的XML特性 DOM2和DOM3级分为许多模 ...

随机推荐

  1. 数组Byte [] 和 string 相互转换

    using System; using System.Collections.Generic; using System.Text; namespace NET.MST.Fourth.StringBy ...

  2. asp.net 类,接口

    ASP.NET抽象类和接口的比较 相同点 ●都不能被直接实例化,都可以通过继承实现其抽象方法. ●都是面向抽象编程的技术基础,实现了诸多的设计模式. 不同点 ●接口支持多继承:抽象类不能实现多继承.  ...

  3. RabbitMQ 在 C# 中简单应用

    RabbitMQ是什么及如何安装就不再赘述,百度一下就知道了,只是在配置方面要多加注意. 话不多说,先直接上一个简示例代码 发送端: ConnectionFactory factory = new C ...

  4. 三、Node.js-HelloWorld案例

    之前我们编写的JavaScript代码都是在浏览器中运行的,因此,我们可以直接在浏览器中敲代码,然后直接运行. 在Node,我们编写的JavaScript代码将不能在浏览器环境中执行了,而是在Node ...

  5. react.js学习之路一

    今天新老大来了,我们要学习他使用的框架react.js,现在是两眼一抹黑,对于我这个前端菜鸟来说,是真正的重新开始,好了,不说那么多了,开始随便记录我的学习,之后再整理内容. (1)对于react来说 ...

  6. ssh免密码登录、secureCRT免密码登录详解

    再放一张真机实现图: 接下来就详细讲述实现细节. 实现过程中吃了不少苦头,这个不对,那个不通.好在慢慢一点点摸索出来了,经验分享在这里. 希望能终结网上ssh免密码登录,以及SecureCRT免密码登 ...

  7. 堆排序 思想 JAVA实现

    已知数组 79.52.48.51.49.34.21.3.26.23 ,请采用堆排序使数组有序. “什么是堆” 堆是一颗完全二叉树,N层完全二叉树是一颗,除N-1层外其节点数都达到最大,且第N层子节点全 ...

  8. Servlet完全教程

    Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...

  9. 关于使用self.title文字不居中的解决办法

    最放发现,使用Segue在对视图切换,左上角的一般都是<Back 的一个Button控键或者是上一个视图的<title .因为上一个视图的title名字太长,导致当前视图的title被挤压 ...

  10. JS 为任意元素添加任意事件的兼容代码

    为元素绑定事件(DOM):有两种 addEventListener 和 attachEvent:   相同点: 都可以为元素绑定事件 不同点: 1.方法名不一样 2.参数个数不一样addEventLi ...