移除“xmlns”命名空间
用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”命名空间的更多相关文章
- 【转】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思
wpf中的xmlns命名空间为什么是一个网址,代表了什么意思 http://blog.csdn.net/catshitone/article/details/71213371
- jdom xpath定位带xmlns命名空间的节点(转)
jdom xpath定位带xmlns命名空间的节点 2013-06-29 0个评论 作者:baozhengw 收藏 我要投稿 关键词:jdom xpath xmlns 命名 ...
- 【C#】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思(转载)
原文:https://blog.csdn.net/catshitone/article/details/71213371 新建一个wpf的项目,我们先来看下它默认的命名空间都是哪些? 可以看到xmln ...
- [玩转微信平台]XML的格式化- 如何去掉XML 文档头和命名空间
前言 系统要求能够回复微信用户发过来的文本消息.实现中使用的实体对象进行XML的序列化的方式来实现XML消息. 微信平台的回复例子 http://mp.weixin.qq.com/wiki/14/ ...
- spring xmlns 记录
spring xmlns 命名空间可从: http://www.springframework.org/schema/ 根据需求选择 如: 1.选择 : aop ...
- XML命名空间详解
http://happylongnv.blog.hexun.com/48859954_d.html 目的:解决同一个元素在相同文件中代表不同含义的问题.因为XML文档中使用的元素不是固定的,那么两个不 ...
- 第一百七十一节,jQuery,高级事件,模拟操作,命名空间,事件委托,on、off 和 one
jQuery,高级事件,模拟操作,命名空间,事件委托,on.off 和 one 学习要点: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one jQuery 不但封装了大量常用的事 ...
- XAML实例教程系列 - 命名空间(NameSpace) 三
XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...
- JavaScript高级程序设计30.pdf
第12章 DOM2和DOM3 DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3则在这个结构的基础上引入了更多的交互能力,也支持更高级的XML特性 DOM2和DOM3级分为许多模 ...
随机推荐
- android library使用方法
一.Android library使用情景 通用模块的重复使用,项目做多了,其实都是差不多,核心模块基本无需大的改动,需要改的只是核心模块上的业务功能而已. Java中可以打包成库,或者说,单纯的ja ...
- Ubuntu配置ip和dns后还是不能访问外网
https://blog.csdn.net/WFping518/article/details/81011722
- c# 两个字符串,s="aeiou",s2="welcome to Quantum Asia"
c# 两个字符串,s="aeiou",s2="welcome to Quantum Asia" 方案一: 使用while循环: static void Mai ...
- docker--基本命令
仅做学习参考,可能有误 part1:启动docker服务 在Windows上使用MySQL时候,有时无法直接使用MySQL -uroot -p 来进入MySQL,这是因为我们没有启动会MySQL服务此 ...
- 移动端适配video适配
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- (原创)数据结构之利用KMP算法解决串的模式匹配问题
给定一个主串S(长度<=10^6)和一个模式T(长度<=10^5),要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串S中出现的位置. 输入格式: 输入有两行 ...
- luoguP2781 传教
https://www.luogu.org/problemnew/show/P2781 简化版题意:有 n 个数,初始值为 0,进行 m 次操作,每次操作支持将 [l, r] 加 v 和查询 [l, ...
- 使用C语言封装数组,动态实现增删改查
myArray.h : #pragma once //包含的时候只包含一次 #include <stdio.h> #include <stdlib.h> #include &l ...
- windows下Idea结合maven开发spark和本地调试
本人的开发环境: 1.虚拟机centos 6.5 2.jdk 1.8 3.spark2.2.0 4.scala 2.11.8 5.maven 3.5.2 在开发和搭环境时必须注意版本兼容的问题 ...
- ubuntu 上的python不能解析jpeg,png?
在安装pillow之前需要先安装以下支持包1.apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev2.安装pillo ...