结构如下
Root1
Node1
File1
File2
SubNode1
Node2
SubNode2
files3
files4
Root2
.......
问题:
(1)将一些数据加到这个文件中,就是root等是具体的某些数据。(2)现文件中只有root1,root2,在加数据时可能会有root3,因此想用程序来实现xml文件的增减
Root1
Node1
File1
File2
SubNode1
Node2
SubNode2
files3
files4
Root2
.......
问题:
(1)将一些数据加到这个文件中,就是root等是具体的某些数据。(2)现文件中只有root1,root2,在加数据时可能会有root3,因此想用程序来实现xml文件的增减
(1)就是如何往一个xml文件中写入数据。
(2)如何动态的增减xml文件中的数据
//添加一个新语句
procedure TBusinessParam.AddClause(const ClauseId, ClauseName: string; WordList: TStringList);
var
I: Integer;
CurNode, ChildNode, ListNode: IXMLNode;
begin
CurNode := RootNode.ChildNodes.FindNode('Assembler');
CurNode := CurNode.ChildNodes.FindNode('AssemblerDefine');
ChildNode := CurNode.AddChild('AssemblerClause'); ChildNode.AddChild('ClauseId').Text := ClauseId;
ChildNode.AddChild('ClauseName').Text := ClauseName; ListNode := ChildNode.AddChild('WordList');
for I := 0 to WordList.Count - 1 do
begin
ChildNode := ListNode.AddChild('Word');
ChildNode.Attributes['Type'] := WordList.Names[I];
ChildNode.Text := WordList.ValueFromIndex[I];
end;
....
end;
XMLFile.SaveToFile(XMLFile.FileName);XMLFile就是一个TXMLDocument的Object
function TForm1.AllOverTreeView(node:TTreenode):TTreenode;
var
ParentNode,CurNode2,CurNode3:IXMLNode;
begin
while node<>nil do
begin
ParentNode:=CurNode1.AddChild(node.Text);
if node.HasChildren then
begin
node:=node.getFirstChild;
CurNode2:=ParentNode.AddChild(node.Text);
allovertreeview(node);
node:=node.Parent;
end;
if node.getNextSibling<>nil then
begin
node:=node.getNextSibling;
CurNode3:=CurNode1.AddChild(node.Text);
end else
exit;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
parentnode:TTreenode;
begin
XMLDocument2.Active:=True;
XMLDocument2.Encoding:='GB2312';
parentnode:=treeview1.Selected;
CurNode1:=XMLDocument2.AddChild('Crp');
AllOverTreeView(parentnode);
XMLDocument2.SaveToFile('c:\prj.xml');
end;