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

问题描述 投票:0回答:1

我正在尝试重新构建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");

使用命名空间URL,以便我在其中一个type属性中获得前缀XMI:

但不幸的是,XML元素将两个类型命名的属性视为相同的属性,并给我一个输出如下

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

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

c# xml xml-parsing xmldocument
1个回答
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");
© www.soinside.com 2019 - 2024. All rights reserved.