属性名称在Xelement的setattribute属性中重叠

时间:2017-12-29 05:40:42

标签: c# xml xml-parsing xmldocument

我正在尝试重新构建XMI结构。所以我需要附加一个子节点,如下所示

 <node xmi:type="shape" xmi:id="12358" type="rectangle">
 </node >

因此创建了 XMLElement 并尝试使用以下代码添加属性

 XmlElement child= papNotdoc.CreateElement("node");
 child.SetAttribute("type", "http://www.omg.org/XMI", "Shape");
 child.SetAttribute("id", "http://www.omg.org/XMI","12358");
 child.SetAttribute("type", "rectangle");

使用命名空间网址,以便我在其中一个类型属性中获得前缀 XMI:

但遗憾的是,XML元素将两个类型命名的属性视为相同的属性,并为我提供如下输出

 <node xmi:type="rectangle" xmi:id="12358">
 </node >

我想要一个节点中的 xmi:type type 属性。如何实现它?

1 个答案:

答案 0 :(得分:1)

您应该将null提供给SetAttribute方法的namespaceURI参数。

XmlElement child = papNotdoc.CreateElement("node");
child.SetAttribute("type", "http://www.omg.org/XMI", "Shape");
child.SetAttribute("id", "http://www.omg.org/XMI", "12358");
child.SetAttribute("type", null, "rectangle");