C#不能在2个Xmlnodes中添加相同的XmlAttribute

本文关键字:XmlAttribute 添加 不能 2个 Xmlnodes | 更新日期: 2023-09-27 18:21:26

我已经创建了XmlAttribute,并将其添加到XmlNode中,一切都很好
当尝试将相同的XmlAttribute添加到另一个XmlNode时,它会从我添加到的第一个XmlNode中窃取属性。

我的场景如下:
父节点有能力,如果这个能力可用,那么我必须创建一个新节点,并将其设置为这个父节点的子节点
父节点有3个(X-Y-Z)属性,如果父节点有能力,那么我创建子节点,并将这些属性添加到其中
我的问题是当我这样做:

fatherNode.Attributes.Append(attribute1);  

属性被添加到集合中,但当我之后这样做时:

childNode.Attributes.Append(attribute1);

它从父节点中删除了属性,现在它只在子节点中。

这种行为是什么?有办法避免吗?

C#不能在2个Xmlnodes中添加相同的XmlAttribute

试试这个:

fatherNode.Attributes.Append(attribute1);
childNode.Attributes.Append( (XmlAttribute)attribute1.Clone());