【问题标题】:How do I add multiple Namespace declarations to an XDocument?如何将多个命名空间声明添加到 XDocument?
【发布时间】:2009-08-12 10:25:40
【问题描述】:

我正在使用 XDocument 以已知结构构建 Xml 文档。我正在尝试构建的结构如下:

<request xmlns:ns4="http://www.example.com/a" xmlns:ns3="http://www.example.com/b" xmlns:ns2="http://www.example.com/c" >
    <requestId>d78d4056-a831-4c7d-a357-d14402f623fc</requestId>
    ....
</request>

注意“xmlns:nsX”属性。

我正在尝试将这些属性添加到我的“请求”元素中,但没有成功。

XNamespace ns4 = XNamespace.Get("http://www.example.com/a");
XNamespace ns3 = XNamespace.Get("http://www.example.com/b");
XNamespace ns2 = XNamespace.Get("http://www.example.com/c");

XDocument doc = new XDocument(
    new XDeclaration("1.0", "utf-8", "no"),
    new XElement("request",
        new XAttribute("ns4", ns4),
        new XAttribute("ns3", ns3),
        new XAttribute("ns2", ns2),
        new XElement("requestId", Guid.NewGuid())
     )
);

但是,这会产生以下结果:

<request ns4="http://www.example.com/a" ns3="http://www.example.com/b" ns2="http://www.example.com/c">
  <requestId>38b07cfb-5e41-4d9a-97c8-4740c0432f11</requestId>
</request>

如何正确添加命名空间声明?

【问题讨论】:

    标签: c# xml linq-to-xml


    【解决方案1】:

    你的意思是:

    new XAttribute(XNamespace.Xmlns + "ns4", ns4),
    new XAttribute(XNamespace.Xmlns + "ns3", ns3),
    new XAttribute(XNamespace.Xmlns + "ns2", ns2),
    

    【讨论】:

    • 看起来像!感谢您非常快速响应。
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多