최초 작성일 : 2022-10-13 | 수정일 : 2023-05-08 | 조회수 : 673 |
외부 xml 주소를 읽어서 php 상으로 파싱하는 방법을 알아보자.
코로나 관련 외부로 공개중인 xml 소식지를 이용해 보았다.
[공공 데이터 포탈 https://www.data.go.kr] 참고해 보기 바란다.
[ 실제 xml 페이지 화면 ]
body 안에 items 안에 item 들이 기사 내용으로 주욱 살펴볼 수 있다.
###google_banner###
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 32 33 34 35 36 37 38 39 | $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 $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 를 이용하면 간단히 처리할 수 있다.
아주 직관적이라 이해하기 어렵진 않을것 같다.