我想改变在C ++ / CLI的XmlElement的名称属性。
我想这样做myXmlElem.Name = "xyz"
,但是编译器告诉我,我不能做的Name属性设置操作。
即
<abc/>
变成
<xyz/>
我怎样才能做到这一点?
谢谢!
我想改变在C ++ / CLI的XmlElement的名称属性。
我想这样做myXmlElem.Name = "xyz"
,但是编译器告诉我,我不能做的Name属性设置操作。
即
<abc/>
变成
<xyz/>
我怎样才能做到这一点?
谢谢!
你不能改变这样一个的XmlElement的名称属性(名称为只读)。
但是你可以做类似如下(在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);
你可以使用LINQ到XML它支持改变的XElement的名称:
XDocument doc = XDocument.Parse("<foo><bar /></foo>");
doc.Root.Name = "changed";//now it will look like <changed><bar /></changed>