1

C++/cli で XmlElement の Name プロパティを変更したいと考えています。

したいのですmyXmlElem.Name = "xyz"が、コンパイラは Name プロパティに対して集合操作を行うことができないと教えてくれます。

すなわち

<abc/>

に変更

<xyz/>

どうすればこれを達成できますか?

ありがとう!

4

2 に答える 2

7

そのような 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);
于 2012-09-07T15:16:36.153 に答える