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

发布于 2024-12-17 19:39:25 字数 462 浏览 0 评论 0原文

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

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

<g:games>
</g:games>

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

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

Possible Duplicate:
Can I use predefined namespaces when loading an XDocument?

I have following xml nodes in a xml document:

<g:games>
</g:games>

But when this file comes to me it is missing namespace url. Is there a way to add the namespace url in .net 3.5? I am using Linq so using XDocument.Load command to load xml file.

In older version we can do this through xmlschema but its not working on XDocument?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

殤城〤 2024-12-24 19:39:25

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

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 文件之前对其进行编辑,但是根据您从何处读取文件(例如网络流),这可能是一个更复杂的选项。

It is true that what I suggested as an answer is unnecessarily complex. The code below should allow you to read your document:

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);
}

Granted, it seems like a lot of work for very little, but the only other alternative would be to edit the XML file before loading it with XDocument, but depending on where you are reading your file from (a network stream, for example), this could be an even more complicated option.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文