최근에는 공공기관들이나 포탈사이트등에서 자료 공개를 API로 하는데 REST을 제공해준다.
기존에는 SOAP 형식으로 제공되었으나 사용하기 간단한 REST 방식이 뜨고있다.
특히 정부3.0(http://data.go.kr)에서 데이터들이 API로 많이 오픈이 되었는데 여기서 사용하는 것이 REST방식이다.
아래의 예제는 해당 URL에서 POST로 데이터를 보내고 REST로 XML을 받아서 각각의 노드에 접근하는 방식을 설명한다.
1.우선 아래와 같은 REST 수신결과 XML이 있다고 가정합니다.
01.
<
response
>
02.
03.
<
items
>
04.
<
item
>
05.
<
nameData
>홍진현</
nameData
>
06.
<
item
>
07.
<
item
>
08.
<
nameData
>호구방위대</
nameData
>
09.
<
item
>
10.
</
items
>
11.
12.
</
response
>
2.소스
01.
WebClient wc =
null
;
02.
XmlDocument doc =
null
;
03.
XmlNode root =
null
;
04.
05.
wc =
new
WebClient() { Encoding = Encoding.UTF8 };
06.
doc =
new
XmlDocument();
07.
08.
try
09.
{
10.
List<
string
> ltReturn =
new
List<
string
>();
11.
12.
LoadedXML = wc.DownloadString(
new
Uri(
"http://TargetURL?param1=1"
));
13.
doc.LoadXml(LoadedXML);
14.
15.
16.
root = doc.SelectSingleNode(
"response"
);
17.
18.
XmlNode ItemsList = root.SelectSingleNode(
"items"
);
19.
20.
21.
foreach
(XmlNode nowItem
in
ItemsList)
22.
{
23.
ltReturn.Add(nowItem.SelectSingleNode(
"nameData"
).InnerText);
// nowItem[0].InnerText
24.
25.
}
26.
27.
return
ltReturn;
28.
29.
}
30.
catch
(Exception)
31.
{
32.
return
null
;
33.
}
34.
finally
35.
{
36.
doc =
null
;
37.
root =
null
;
38.
wc.Dispose();
39.
}
SelectSingleNode 를 통해서 노드를 선택하거나 nowItem[0] 처럼 노드를 배열처럼 사용해서 값들을 불러 올 수 있습니다.