일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dll
- winsock
- 파라미터
- vb
- 소니
- PostgreSQL
- 인스톨
- Firebird
- 기초
- Delphi
- 초보
- MySQL
- 파이어버드
- 시리얼 통신
- Visual Basic
- 데이터베이스
- 셋업
- xml
- 델파이
- VB.NET
- Visual Studio 2005
- SQL
- 입문
- 설치
- WIN32 SDK
- MFC
- 예제
- 문자열
- SDK
- c#
- Today
- Total
프로그래밍 노트
델파이 XML Data Binding으로 xml 파일 조작하기 본문
델파이 XML Data Binding으로 xml 파일 조작하기
소스를 열어둔 상태에서 Tool Palette를 보면 Delphi Projects | XML이 있다.
그 밑에 XML Data Binding이 있다.
그것을 클릭한다.
그러면 아래 윈도우가 표시되어지고
조작할 XML 파일을 선택하고 "Next" 버튼을 누른다.
XML Data Binding Wizard 화면에서도 특별히 고치지 않고 "Next" 버튼을 누른다.
그러면 아래와 같이 새로운 pas파일이 생성되면서 조금전에 선택한 XML 파일의 조작하기 쉽게 xml 파일이 바인딩된다.
그리고 이 바인딩된 xml 파일을 사용하고자 하는 곳에
추가된 unit명과 xmldom, XMLIntf, XMLDoc을 uses에 추가해야 된다.
xml Data Binding을 쓰면 간단하게 xml 파일에 노드를 추가하고
삭제하고 검색하고 변경하는 것이 가능하지만 좀 자유도(?)가 많이 떨어지게 된다.
자세한 내용은 첨부한 소스를 참조하는 것이 좋을 것같다.
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, stdctrls, extctrls
,CarList, xmldom, XMLIntf, XMLDoc;
type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
procedure ListBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
ixList : IXMLItemListType;
ixDetail :Array of IXMLItemType;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
iListCount : integer;
i : integer;
sTest : string;
begin
iListCount := ixList.Count;
setLength(ixDetail, iListCount);
ListBox1.Clear;
// xml 파일에서 아이템 가져오기
for i := 0 to iListCount - 1 do
begin
ixDetail[i] := ixList.Get_Item(i);
ListBox1.Items.Add(ixDetail[i].Name)
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
CurrentPath : array [0..256] of char;
begin
// 어플리케이션이 위치하는 디렉토리 얻기
GetCurrentDirectory(sizeof(CurrentPath),CurrentPath);
// xml을 읽어서 아이템 리스트 로드
ixList := LoadItemList(CurrentPath + '\CarList.xml');
Application.GetNamePath
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
i: integer;
begin
i := ListBox1.ItemIndex;
ListBox2.Clear;
// 선택한 아이템의 상세 정보 표시
//ListBox2.Items.Add(ixDetail[i].Sec);
ListBox2.Items.Add('Color = ' + ixDetail[i].Color);
ListBox2.Items.Add('Maker = ' + ixDetail[i].Maker);
end;
end.
BDS 2006
프로젝트 소스와 xml 파일