【发布时间】:2010-09-13 04:41:48
【问题描述】:
在 .NET 中从 XmlDocument 生成 XML 时,第一次插入一个 没有 关联命名空间的元素时会出现一个空白的xmlns 属性;如何预防?
例子:
XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root",
"whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner"));
Console.WriteLine(xml.OuterXml);
输出:
<root xmlns="whatever:name-space-1.0"><loner xmlns="" /></root>
想要的输出:
<root xmlns="whatever:name-space-1.0"><loner /></root>
是否有适用于XmlDocument 代码的解决方案,而不是在 将文档转换为OuterXml 的字符串之后发生的事情?
我这样做的原因是看我是否可以使用 XmlDocument 生成的 XML 匹配特定协议的标准 XML。空白的xmlns 属性可能不会破坏或混淆解析器,但它也不存在于我所见过的该协议的任何用法中。
【问题讨论】:
标签: c# .net xml xml-namespaces xmldocument