xmldocument中如何改变一个节点标签?

qevan 2003-03-08 11:08:52
how to change the tagname of a specified node?
...全文
31 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qevan 2003-03-10
  • 打赏
  • 举报
回复
谢谢!
看你的意思,只能靠复制属性了?
这样做好象很不爽阿!
速度???
看来也没有什么好办法了。
在此谢谢先,一会给分。


halfdream 2003-03-09
  • 打赏
  • 举报
回复
确实不能更名,
写了一个函数,未作错误处理,调试通过了,



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;

DNodeOld.parentNode.replaceChild(DNodeNew,DNodeOld);



end;
halfdream 2003-03-09
  • 打赏
  • 举报
回复
不好意思,没看清楚就信口一说:)
我想想去
qevan 2003-03-08
  • 打赏
  • 举报
回复
NodeName is a read-only property
halfdream 2003-03-08
  • 打赏
  • 举报
回复
改变它的NodeName就可以了。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧