在尝试添加属性时,我总是会遇到异常,为什么它不起作用?
前缀''不能从''重新定义到' 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 :(得分:0)
这个最简单的方法是让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>
答案 1 :(得分: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")
);