c# - 更改 XmlElement 名称属性

标签 c# xml replace c++-cli

我想在 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);

关于c# - 更改 XmlElement 名称属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320809/

相关文章:

c# - 用其他东西替换部分字符串

c# - 如何在.net core 中记录未处理的异常

xml - 如何从不在重复项中使用结束标记的嵌套 xml 中获取数据?

python - 如何执行缓冲搜索和替换?

python - 如何在 python 中解析具有多个嵌套子项的 .xml 文件?

java - 在 XML 文件中搜索字符串

javascript - 需要用Javascript替换 "$"为 "_"

c# - 在 Visual Studio (C#) 中的编译时设置值?

c# - 将文本框中的数字乘以数量值

c# - C# 拦截应用程序关闭