将属性添加到 XML 节点总是失败

本文关键字:失败 节点 XML 属性 添加 | 更新日期: 2023-09-27 18:35:02

尝试添加属性时,我总是在下面出现异常,为什么它不起作用?

前缀">

不能从"重新定义为"http://ws.plimus.com" 在同一起始元素标记中。

法典

var docXml = new XElement("param-encryption", 
    new XAttribute("xmlns", "http://ws.plimus.com"),
    new XElement("parameters"));
var s = docXml.ToString();

我想得到这样的结果

<param-encryption xmlns="http://ws.plimus.com">
  <parameters>

  </parameters>
</param-encryption>

将属性添加到 XML 节点总是失败

这种最简单的方法是让 LINQ to XML 通过在元素名称中指定命名空间来自动执行此操作:

XNamespace ns = "http://ws.plimus.com";
var docXml = new XElement(ns + "param-encryption", new XElement(ns + "parameters"));

docXml.ToString()结果:

<param-encryption xmlns="http://ws.plimus.com">
  <parameters />
</param-encryption>

试试这个 -

XNamespace aw = "http://ws.plimus.com";
XElement root = new XElement("param-encryption",
    new XAttribute(XNamespace.Xmlns + "aw", "http://ws.plimus.com"),
    new XElement("Child", "child content")
);
Console.WriteLine(root);

(编辑(:-如果您不想要命名空间别名,请使用此选项

XNamespace aw = "http://ws.plimus.com";
    XElement root = new XElement(aw + "param-encryption",
        new XAttribute("xmlns",  "http://ws.plimus.com"),
        new XElement( aw  + "Child", "child content")
    );