2014-12-23 44 views
0

当我尝试添加属性时,我总是会遇到异常,为什么它不起作用?将属性添加到XML节点总是失败

前缀“”“不能从重新定义”到相同的开始元素标签内“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> 
+0

这是一个根元素? – Amit

+0

@Amit是的,这是根元素。 – Tomas

回答

0

这最简单的方法就是让LINQ到XML的元素名称指定命名空间自动执行此操作:

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

的结果:

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

试试这个 -

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") 
    ); 
+0

这不会创建OP描述的XML。 – JLRishe