delphi读XML

XML文件内容;

<?xml version="1.0" encoding="GB2312"?>

<我的书>

<漫画 作者="小飞">

<书名>火影忍者</书名>

<价格>100</价格>

</漫画>

<漫画 作者="大飞">

<书名>死神</书名>

<价格>100</价格>

</漫画>

<漫画 作者="阿斗">

<书名>天牢</书名>

<价格>200</价格>

</漫画>

<小说 作者="阿斗">

<书名>天牢</书名>

<价格>200</价格>

</小说>

</我的书>

////////////

delphi内容;

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

XMLDocument1: TXMLDocument;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

mybook = class

name: string;

money: string;

author: string;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

root: IXMLnode;

lei: IXMLNode;

info: IXMLNode;

book: mybook;

i: integer;

begin

xmldocument1.LoadFromFile('xml.xml');

root := xmldocument1.DocumentElement;

lei := root.ChildNodes.First;

while lei <> nil do

begin

if lei.NodeName = '漫画' then

begin

book := mybook.Create;

book.author := lei.Attributes['作者'];

info := lei.ChildNodes.First;

while info <> nil do

begin

if info.NodeName = '书名' then

book.name := info.Text

else if info.NodeName = '价格' then

book.money := info.Text;

info := info.NextSibling;

//showmessage('中华人民共和国');

end;

memo1.Lines.Add(book.name + book.money + book.author);

end;

lei := lei.NextSibling;

end;

end;

end.