我想为我的根元素创建一个具有两个名称空间的XML文件,一个是默认的,一个是命名的。下面是我的代码:
var testdoc= new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Document",
new XAttribute("xmlns", "namespace1"),
new XAttribute(XNamespace.Xmlns + "xsi", "namespace2"),
new XElement("sampleElem", "content")
)
);
生成以下错误:
"namespace2"的前缀不能在开始新元素的同一代码中重新定义。
我明白这个错误,但我不明白为什么我得到它(因为前缀名称不相同)。有人知道得到预期结果的正确方法吗?
因为在这一行new XElement("Document",
中,您已经创建了一个默认具有名称空间的元素。指定要重写的属性。
这样做
XNamespace ns = "namespace1";
var testdoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(ns + "Document",
new XAttribute(XNamespace.Xmlns + "xsi", "namespace2"),
new XElement("sampleElem", "content")
)
);