procedure XMLDOCRename(aNode:IXMLNode;newname:string);
var
doc:IXMLDocument;
DNodeNew,DNodeOld,DNodeTmp:IDOMNode;
i:integer;
begin
doc:=aNode.OwnerDocument;
DNodeOld:=aNode.DOMNode ;
DNodeNew:=doc.DOMDocument.createElement(newname) ;
//复制属性。
for i:=0 to DNodeOld.attributes.length-1 do
begin
DNodeTmp:=DNodeOld.attributes.item[i];
DNodeNew.attributes.setNamedItem(DNodeTmp.cloneNode(true))
end;
//复制子节点。
for i := 0 to aNode.ChildNodes.Count-1 do
begin
DNodeTmp:=aNode.ChildNodes.Nodes[i].DOMNode;
// DNodeTmp:=DNodeOld.childNodes.item[i]; 用这句好象有问题。
// ShowMessage( DNodeTmp.nodeName);
DNodeNew.appendChild(DNodeTmp)
end;