DELPHI TXMLDocument 插入子节点问题
请DELPHI 大哥帮忙
我想通过TXMLDocument 插入指定位置节点
假设
<g name ="1"--name是唯一标示></g>
<text name="2"></text>
<text1 name="3"></text1>
我现在想把2个Text文本插入<g>节点。 动态的指定插入
拜求各位大哥来点实例
[解决办法]
var xmlDoc:TXMLDocument; iNode,tNode,fNode:IXMLNode;begin xmlDoc:=TXMLDocument.Create(nil); try xmlDoc.Active:=True; iNode:=xmlDoc.AddChild('p'); iNode.Attributes['Name']:='1'; tNode:=iNode.AddChild('text'); tNode.Attributes['Name']:='2'; tNode:=iNode.AddChild('text1'); tNode.Attributes['Name']:='3'; // find a xmlnode by name fNode:=xmlDoc.ChildNodes['p']; tNode:=fNode.AddChild('text2'); tNode.Attributes['Name']:='4'; xmlDoc.SaveToFile('d:\txml.xml'); finally xmldoc:=nil; end;end;
[解决办法]
var i: integer; doc: TXMLDocument;begin doc := TXMLDocument.Create(Self); doc.Xml.Text := xxxxxxxxxxxxxx; //原始XML doc.Active := True; //遍历,找目标节点 for i := 0 to doc.DocumentElement.ChildNodes.Count - 1 do begin n := doc.DocumentElement.ChildNodes[i]; if (n.NodeName = 'g') and (n.Attributes['name'] = 1) then begin //添加节点 n.AddChild('a'); n.AddChild('b'); n.AddChild('c'); n.AddChild('d'); break; end; end; doc.Free;end;