可能重复:
Can I use predefined namespaces when loading an XDocument?
我在xml文档中有以下xml节点:
<g:games>
</g:games>
但是当这个文件来找我时它缺少名称空间url。有没有办法在.net 3.5中添加命名空间URL?我使用Linq所以使用XDocument.Load命令加载xml文件。
在旧版本中,我们可以通过xmlschema执行此操作,但它不能用于XDocument吗?
答案 0 :(得分:3)
确实,我建议的答案是不必要的复杂。下面的代码应该允许您阅读您的文档:
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文件,但取决于你从哪里读取文件(a例如,网络流,这可能是一个更复杂的选择。