【发布时间】:2009-02-09 17:07:52
【问题描述】:
我在生成 XML 时遇到了问题:
<Root xmlns:brk="http://somewhere">
<child1>
<brk:node1>123456</brk:node1>
<brk:node2>500000000</brk:node2>
</child1>
</Root>
这段代码让我获得了大部分的帮助,但我无法获得节点前面的“brk”命名空间;
var rootNode = new XElement("Root");
rootNode.Add(new XAttribute(XNamespace.Xmlns + "brk", "http://somewhere"));
var childNode = new XElement("child1");
childNode.Add(new XElement("node1",123456));
rootNode.Add(childNode);
我试过这个:
XNamespace brk = "http://somewhere";
childNode.Add(new XElement(brk+"node1",123456));
还有这个
XNamespace brk = "http://somewhere";
childNode.Add(new XElement("brk:node1",123456));
但两者都会导致异常。
【问题讨论】:
-
你得到什么异常?使用 childNode.Add(new XElement(brk+"node1",123456)); 时,我没有得到任何异常和正确的结果;
-
System.Xml.XmlException: 前缀 '' 不能在同一个起始元素标记内从 '' 重新定义为 'somewhere'。
标签: c# xml linq-to-xml xnamespace