C# 将带有冒号的命名空间添加到xml文件

C# 将带有冒号的命名空间添加到xml文件,c#,xml,.net-4.0,xelement,xnamespace,C#,Xml,.net 4.0,Xelement,Xnamespace,我需要生成一个如下所示的xml文件: <?xml version="1.0" encoding="utf-8"?> <ns:Root xmlns:ns0="http://namespace"> <Node1> <A>ValueA</A> <B>ValueB</B> </Node1> </Root> 但这会产生: <?xml version="1.0" enc

我需要生成一个如下所示的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<ns:Root xmlns:ns0="http://namespace">
  <Node1>
    <A>ValueA</A>
    <B>ValueB</B>
  </Node1>
</Root>
但这会产生:

<?xml version="1.0" encoding="utf-8"?>
<Root xmlns:ns0="http://namespace">
  <Node1>
    <A>ValueA</A>
    <B>ValueB</B>
  </Node1>
</Root>

瓦卢亚
瓦卢布
请注意根节点之前缺少的“ns0:”。我如何添加它?其他一切都应该完全相同。

试试这个

XNamespace ns = XNamespace.Get("http://namespace");

var xDocument = new XDocument(
                new XElement(ns + "Root",
                    new XAttribute(XNamespace.Xmlns + "ns0", ns),
                    new XElement("Node1",
                        new XElement("A", "ValueA"),
                        new XElement("B", "ValueB")
                        )));
试试这个

XNamespace ns = XNamespace.Get("http://namespace");

var xDocument = new XDocument(
                new XElement(ns + "Root",
                    new XAttribute(XNamespace.Xmlns + "ns0", ns),
                    new XElement("Node1",
                        new XElement("A", "ValueA"),
                        new XElement("B", "ValueB")
                        )));

您是否尝试将
“ns:Root”
改为
“Root”
作为第一个
XElement
构造函数的参数?@HuorSwords:不起作用,我得到了“名称”异常中不能包含的“:”字符,十六进制值0x3A。请检查此问题是否存在类似(甚至不相等)的问题。您是否尝试将
“ns:Root”放入
而不是
“Root”
作为第一个
XElement
构造函数的参数?@HuorSwords:不起作用,我得到了“':'字符,十六进制值0x3A,不能包含在名称中”异常。请检查此问题,以了解类似(甚至不相等)的问题。