Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式向xml文档添加命名空间_C#_Xml - Fatal编程技术网

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

C# 以编程方式向xml文档添加命名空间,c#,xml,C#,Xml,可能重复: 我在xml文档中有以下xml节点: <g:games> </g:games> var mgr = new XmlNamespaceManager(new NameTable()); mgr.AddNamespace("g", "http://tempuri.org"); var ctx = new XmlParserContext(null, mgr, null, XmlSpace.Default); using (var reader = XmlRea

可能重复:

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

<g:games>
</g:games>
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);
}

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


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

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

<g:games>
</g:games>
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);
}

诚然,这似乎需要花费很少的工作量,但唯一的替代方法是在加载XML文件之前使用
XDocument
,但这取决于您从何处读取文件(例如,网络流),这可能是一个更复杂的选择。

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

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

@madd0-Hi,我不认为它是重复的,我只需要添加名称空间,但其他文档通过创建单独的表和其他东西来做很多其他事情。我只需要添加名称空间。@madd0-Hi,我不认为它是重复的,我只需要添加名称空间,但其他文档通过创建单独的表和其他东西来做很多其他事情。我只需要添加名称空间。很抱歉,这看起来很复杂。难道没有一种简单的方法可以将名称空间添加到xml文件中吗?然后将文件作为XDocument.load(“filepath”);?加载??除了编辑原始文件(我将其添加为对原始答案的编辑)之外,使用
XmlNamespaceManager
是从文件“外部”管理名称空间的唯一方法(在名称中…)抱歉,但这似乎又很复杂。难道没有一种简单的方法可以将名称空间添加到xml文件中吗?然后将文件作为XDocument.load(“filepath”);?加载??除了编辑原始文件(作为对原始答案的编辑而添加)之外,使用
XmlNamespaceManager
是从文件“外部”管理名称空间的唯一方法(在名称中…)