XML文件的读写操作 xmlDoc: IXMLDocument;
1. IXMLDocument对象初始化
xmlDoc := TXMLDocument.Create(nil);
2. 激活xmlDoc,自动初始化空的XML文档
xmlDoc.Active := True;
3. 设置XML版本和字符集
xmlDoc.Version := '1.0';
xmlDoc.Encoding := 'GB2312';
4. 建立根节点、设置属性并添加子节点
xmlNode := xmlDoc.AddChild('图书馆');//根节点
BookNode := xmlNode.AddChild('Book');//子节点
BookNode.SetAttributeNS('ID', '=', '001');//设置属性
MsgNode := BookNode.AddChild('作者');
MsgNode.Text := '作者1';//设置节点的文本值
MsgNode := BookNode.AddChild('价钱');
MsgNode.Text := '100';
5. XML的保存
xmlDoc.SaveToFile('C:/xmlDoc.xml');
XML文件的读取
1. IXMLDocument对象初始化
xmlDoc:=TXMLDocument.Create(nil);
2. 调入XML文件
xmlDoc.LoadFromFile('C:/xmlDoc.xml');
3. 取XML文件的根结点和子节点的内容
begin
//xmlDoc.XML.Text := 'C:/xmlDoc.xml';
xmlDoc:=TXMLDocument.Create(nil);
xmlDoc.LoadFromFile('C:/xmlDoc.xml');
xmlNode := xmlDoc.DocumentElement;
BookNode := xmlNode.ChildNodes.First;
while (BookNode <> nil) do
begin
if (BookNode.NodeName = 'Book') then
begin
Book := TBook.Create;
MsgNode := BookNode.ChildNodes.First;
while (MsgNode <> nil) do
begin
if (MsgNode.NodeName = '作者') then
Book.Author := MsgNode.Text
else if (MsgNode.NodeName = '价钱') then
Book.Price := StrToInt(MsgNode.Text);
MsgNode := MsgNode.NextSibling;
end;
Memo1.Text := Memo1.Text + #10#13 + 'Book:作者' + Book.Author
+ '价格' + IntToStr(Book.Price);
Memo1.Text := Memo1.Text + #10#13 + IntToStr(Book.Price);
end;
BookNode := BookNode.NextSibling;
end;
end;
XML文件的追加信息
xmlDoc := TXMLDocument.Create(nil);
xmlDoc.LoadFromFile('C:/xmlDoc.xml');
xmlNode := xmlDoc.DocumentElement;
BookNode := xmlNode.AddChild('Book');
BookNode.SetAttributeNS('ID', '=', '003');
MsgNode := BookNode.AddChild('作者');
MsgNode.Text := '作者3';
MsgNode := BookNode.AddChild('价钱');
MsgNode.Text := '80';
xmlDoc.SaveToFile('C:/xmlDoc.xml');