µµ·Î¸í ÁÖ¼Ò º¯È¯ °ü·Ã µ¨¸¶´ç¿¡ ¿Ã·ÁÁֽŠ°í¸¶¿ì½Å ´Ôµé ´öºÐ¿¡ ÇÁ·Î±×·¥À» ¸¸µé¾î Àß »ç¿ëÇÏ°í ÀÖ¾ú´Âµ¥ ¾î´Àµ¡ ÀÎÁõ±â°£ÀÌ ¸¸·áµÇ¾î¹ö·È³×¿ä... ±×·¡¼ ´Ù½Ã ÀÎÁõÀ» ¹Þ¾Æ ÄÄÆÄÀÏÀ» ÇØ º¸´Ï °á°ú°¡ ÀüÇô ¾È ³ª¿À±æ·¡ ºÃ´õ´Ï ±×»õ API »ç¿ë¹ýµµ º¯°æÀÌ µÇ¾î Àֳ׿ä... ±×·¡¼ »õ·Î¿î API »ç¿ë¹ýÀ» Àû¿ëÇÏ¿© ´Ù½Ã ¸®´º¾ó ÇÏ¿´½À´Ï´Ù.
Çٽɼҽº... µ¨ÆÄÀÌ 10.1 procedure TForm3.btnFindClick(Sender: TObject); var Code, Url, SearchWord, FindKeyWord: string ; Data, DResult: TStringStream; OuterRoot, EntryNode: IXmlNode; i, j: Integer; begin if Trim(edtAddr.Text).IsEmpty then begin ShowMessage('°Ë»öÇÒ ±¸ÁÖ¼Ò¸¦ ÀÔ·ÂÇϽʽÿÀ..'); edtAddr.SetFocus; Exit; end;
if rdgAddr.ItemIndex = 0 then FindKeyWord := 'roadAddr' else FindKeyWord := 'roadAddrPart1';
DResult := TStringStream.Create('');
try Screen.Cursor := crHourGlass; idHttp.Request.ContentType := 'application/json';
Code := TNetEncoding.URL.Encode('¹ß±Þ¹ÞÀº ÀÎÁõÅ°¸¦ ÀÔ·ÂÇϽʽÿÀ...');
SearchWord := TNetEncoding.URL.Encode(edtAddr.Text);
Url:= 'http://www.juso.go.kr/addrlink/addrLinkApi.do'; IdHttp.Get(Url + '?confmKey=' + Code + '&keyword=' + SearchWord, DResult);
XMLDocument.LoadFromStream(DResult); XMLDocument.Active:=True;
OuterRoot := XMLDocument.DocumentElement; if OuterRoot.ChildNodes.Count <= 1 then begin gdResult.ClearRows(gdResult.FixedRows, 1); gdResult.RowCount := 2;
btnClipBoardCopy.Enabled := False; ShowMessage('ÇØ´çÇÏ´Â µµ·Î¸í ÁÖ¼Ò¸¦ ãÀ» ¼ö°¡ ¾ø½À´Ï´Ù...'); edtAddr.SetFocus; Exit; end;
with gdResult do begin RowCount := OuterRoot.ChildNodes.Count; ClearRows(FixedRows, RowCount - FixedRows); AutoNumberCol(0); end;
for i := 0 to OuterRoot.ChildNodes.Count -1 do begin if OuterRoot.ChildNodes[i].NodeName = 'juso' then begin EntryNode := OuterRoot.ChildNodes[i];
if EntryNode.ChildNodes.Count > 0 then begin // ¾Æ·¡ Ãâ·Â º¯¼ö¸íµéÀÌ º¯°æµÇ¾úÀ½... for j := 0 to EntryNode.ChildNodes.Count -1 do begin if EntryNode.ChildNodes[j].NodeName = 'zipNo' then gdResult.Cells[1, i] := EntryNode.ChildNodes[j].Text else if EntryNode.ChildNodes[j].NodeName = FindKeyWord then gdResult.Cells[2, i] := EntryNode.ChildNodes[j].Text else if EntryNode.ChildNodes[j].NodeName = 'jibunAddr' then gdResult.Cells[3, i] := EntryNode.ChildNodes[j].Text; end; end end; gdResult.SetFocus; btnClipBoardCopy.Enabled := True; end; finally DResult.Free; Screen.Cursor := crDefault; end; end;
ÇÁ·Î±×·¥ Àüü ¼Ò½º´Â ¾Æ·¡ ºí·Î±×¿¡¼ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. blog.naver.com/seejune66
|