如何删除XML中的一个节点?(100分)

  • 主题发起人 主题发起人 foolaliu
  • 开始时间 开始时间
F

foolaliu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用MXML4做xml的解析器,请问在Delphi中如何操作可以删除其中的一个节点
不胜感激
 
var
xmlDoc: IXMLDOMDocument2;
procedure TForm1.Button1Click(Sender: TObject);
begin
if xmlDoc = nil then
begin
xmlDoc := CoDOMDocument40.Create;
//初始化 实例
xmlDoc.loadXML(testXML);
//得到 xml 内容
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Assigned(xmlDoc) then
begin
Edit1.Text := IntToStr(xmlDoc.firstChild.childNodes.length);
// 统计节点数
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
ItemIndex: Integer;
begin
if Assigned(xmlDoc) then
begin
ItemIndex := xmlDoc.firstChild.childNodes.length;
xmlDoc.firstChild.removeChild(xmlDoc.firstChild.childNodes.item[ItemIndex-1]);
// 使用 removeChild 方法 删除 节点
end;
end;

兄台还有什么不明白的, 还是我理解题意错误。
 
var
Root : IXMLNode;
//指向XML根结点
Parent_node:IXMLNode;
Child_node:IXMLNode;
begin
MyXMLDoc.LoadFromFile('data/myp.dat');
MyXMLDoc.Active := true;
Root := MyXMLDoc.DocumentElement;
//取XML文件的根结点
Parent_node:=Root.ChildNodes.FindNode('abc');
Parent_node.ChildNodes.Remove(Child_node);
XMLForm.Empty_Deal(Parent_Node);
MyXMLDoc.SaveToFile('data/myp.dat');
MyXMLDoc.Active := false;
end
 
to 沧海:
谢谢,告诉我removechild这个函数就足够了。
to x_coffee:
你写的那些函数在msxml中都没有啊,是不是其他的解析器?
还是非常感谢
 
多人接受答案了。
 
后退
顶部