我想在c ++ / cli中更改XmlElement的Name属性。

我想做myXmlElem.Name = "xyz",但是编译器告诉我不能对Name属性进行设置操作。



<abc/>


变成

<xyz/>


我该如何实现?

谢谢!

最佳答案

您不能像这样更改XmlElement的Name属性(Name是只读的)。

但是,您可以执行以下操作(以C#为例)。

XmlElement xyz = myXmlElem.OwnerDocument.CreateElement("xyz");
myXmlElem.ParentNode.ReplaceChild(xyz, myXmlElem);


编辑回应您的评论

XmlElement xyz = myXmlElem.OwnerDocument.CreateElement("xyz");

for(int i = 0; i < myXmlElem.ChildNodes.Count; i++){
    XmlNode child = myXmlElem.ChildNodes[i];
    xyz.AppendChild(child.CloneNode(true));
}

myXmlElem.ParentNode.ReplaceChild(xyz, myXmlElem);

07-25 21:23