首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DELPHI TXMLDocument 插入子节点有关问题

2012-02-28 
DELPHI TXMLDocument 插入子节点问题请DELPHI 大哥帮忙我想通过TXMLDocument 插入指定位置节点假设g name

DELPHI TXMLDocument 插入子节点问题
请DELPHI 大哥帮忙
我想通过TXMLDocument 插入指定位置节点 

假设 
<g name ="1"--name是唯一标示></g>
<text name="2"></text> 
<text1 name="3"></text1>
我现在想把2个Text文本插入<g>节点。 动态的指定插入

拜求各位大哥来点实例

[解决办法]

Delphi(Pascal) code
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;
[解决办法]
Delphi(Pascal) code
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; 

热点排行