以编程方式向xml文档添加命名空间

本文关键字:文档 添加 命名空间 xml 编程 方式 | 更新日期: 2023-09-27 18:15:36

可能重复:
加载XDocument时是否可以使用预定义的命名空间?

我在xml文档中有以下xml节点:

<g:games>
</g:games>

但当我看到这个文件时,它缺少名称空间url。有没有办法在.net 3.5中添加命名空间url?我使用的是Linq,所以使用XDocument.Load命令来加载xml文件。

在旧版本中,我们可以通过xmlschema来实现这一点,但它不适用于XDocument?

以编程方式向xml文档添加命名空间

确实,我所建议的答案是不必要的复杂。下面的代码应该允许您阅读您的文档:

var mgr = new XmlNamespaceManager(new NameTable());
mgr.AddNamespace("g", "http://tempuri.org");
var ctx = new XmlParserContext(null, mgr, null, XmlSpace.Default);
using (var reader = XmlReader.Create(@"d:'dev'temp'sample.xml", null, ctx))
{
    var doc = XDocument.Load(reader);
}

诚然,这似乎是一项工作量很大、花费很少的工作,但唯一的其他选择是在用XDocument加载XML文件之前对其进行编辑,但根据您从哪里读取文件(例如,网络流(,这可能是一个更复杂的选项。