TXMLDocument는 MSXML 기반으로 속도가 많이 느립니다.
DOM을 쓰셔야 한다면 TinyXML같은 가벼운 것을 사용하시고(파스칼용은 뭐가 있는지 잘 모르겠지만) 데이터 양이 많다면 DOM보다는 SAX파서를 쓰시는게 좋을겁니다.
쿠핑 님이 쓰신 글 :
: 안녕하세요
:
: XML로 디비를 가저와서 뿌려주는데 XML이 웹상에 있다보니 속도 문제가 걸립니다.
:
:
: 가져오는 형태는
:
: procedure TfrmMain.XML_Load;
: var
: xdRoot: TXMLDocument;
: xnChild: IXMLNode;
: xnGrandchild: IXMLNode;
: I: Integer;
: j, n: Integer;
: RedordCount: Integer;
: begin
: // XML Document 만들기
: xdRoot := TXMLDocument.Create(Application);
:
: // XML Document 불러오기
: xdRoot.LoadFromFile(ConnectURL + 'upfile_list.php');
: xdRoot.Active := True;
:
: // 루트 노드가 없을 경우 종료
: if xdRoot.ChildNodes.First = nil then Begin
: Exit;
: End;
:
:
: xnChild := xdRoot.ChildNodes['DataList'];
: RedordCount := StrToIntDef(xnChild.Attributes['TotalRecord'], 0);
:
:
: if RedordCount = 0 then
: begin
: xdRoot.Free;
: end
: else begin
: xnChild := xdRoot.DocumentElement.ChildNodes[0];
: xnGrandchild := xnChild.ChildNodes[0];
:
: lbTextNum.Caption := trim(xnGrandchild.Attributes['num'])
: end;
:
: xdRoot.Free;
:
: end;
:
: 이런씩으로 가져옵니다.
:
: 이때
: // XML Document 불러오기
: xdRoot.LoadFromFile(ConnectURL + 'upfile_list.php');
: xdRoot.Active := True;
:
: 이 부분에서 웹을 띄워야 하는 부분이 있어 속도가 느린지 일반적으로 디비를 쿼리하는것보다 상당히 느리더라구요
:
: XML로 데이터를 가져올때 속도를 생각해서 가져오는 방법이 없나요???
:
: 부디 노하우 답글 좀 부탁드립니다.
:
:
|