최초 작성일 : 2022-10-13 | 수정일 : 2023-05-08 | 조회수 : 673 |
Tags #XML파싱 #공공데이타포탈외부 xml 주소를 읽어서 php 상으로 파싱하는 방법을 알아보자.
코로나 관련 외부로 공개중인 xml 소식지를 이용해 보았다.
[공공 데이터 포탈 https://www.data.go.kr] 참고해 보기 바란다.[ 실제 xml 페이지 화면 ]
body 안에 items 안에 item 들이 기사 내용으로 주욱 살펴볼 수 있다.
123456789101112131415161718192021222324252627282930313233343536373839 $ch = curl_init();$url = 'http://apis.data.go.kr/1262000/SafetyNewsList/getCountrySafetyNewsList';$queryParams = '?' . urlencode('ServiceKey') . '시디키값';$queryParams .= '&' . urlencode('numOfRows') . '=' . urlencode('10');$queryParams .= '&' . urlencode('pageNo') . '=' . urlencode('1');/*$queryParams .= '&' . urlencode('title1') . '=' . urlencode('입국');$queryParams .= '&' . urlencode('title2') . '=' . urlencode('코로나');$queryParams .= '&' . urlencode('title3') . '=' . urlencode('운항');$queryParams .= '&' . urlencode('title4') . '=' . urlencode('항공권');$queryParams .= '&' . urlencode('title5') . '=' . urlencode('격리');*/curl_setopt($ch, CURLOPT_URL, $url . $queryParams);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_HEADER, FALSE);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');$response = curl_exec($ch);curl_close($ch);$xml = simplexml_load_string($response);//echo $xml->body->items->item[0]->content;for ($i=0;$i$xml->body->items->item);$i++) { $title = $xml->body->items->item[$i]->title;$content = $xml->body->items->item[$i]->content;$content = nl2br($content);?><ul><li><strong>=$title?>strong>li><li>=$content?>li>ul>}?>cs 여기서는 curl 을 이용하여 GET 방식으로 처리했다.
simplexml_load_string 를 이용하면 간단히 처리할 수 있다.
아주 직관적이라 이해하기 어렵진 않을것 같다.