将 xml 命名空间添加到 XDocument

本文关键字:XDocument 添加 命名空间 xml | 更新日期: 2023-09-27 18:36:03

我需要的输出是

<ns1:collection>
<ns1:child1>value1</ns1:child3>
    <ns1:child2>value2</ns1:child3>
    <ns1:child3>value3</ns1:child3>
</ns1:collection>

我尝试通过下面的代码进行操作 - 但我得到一个异常-...

如何在这个问题上添加命名空间?

XDocument xDoc = new XDocument( new XElement( "collection",
                 new XElement( "ns1:child1", value1 ),
                 new XElement( "ns1:child2", value2 ),
                 new XElement( "ns1:child3", value3 ) ) );

我也尝试使用

          XNamespace ns1 = "http://url/for/ns1";";

和做

           ( ns1 + "child1", value1 )

仍然一无所有

将 xml 命名空间添加到 XDocument

将命名空间声明移动到虚构的父元素:

XDocument xDoc = new XDocument(new XElement("root",
            new XAttribute(XNamespace.Xmlns + "ns1", ns1),
                new XElement(ns1 + "collection",
                    new XElement(ns1 + "child1", value1),
                    new XElement(ns1 + "child2", value2),
                     new XElement(ns1 + "child3", value3))));
        XDocument xDoc = new XDocument(new XElement(ns1+"collection",
            new XAttribute(XNamespace.Xmlns+"ns1",ns1),
             new XElement(ns1+ "child1", value1),
             new XElement(ns1+"child2", value2),
             new XElement(ns1+"child3", value3)));