xml 파싱 질문입니다.
본문
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once('./_common.php');
// /////////////////////////////////// XML 요청 데이터를 생성합니다. //////////////////////////////////
$roomNo = get_text($member['mb_id']);
$userNo = get_text($member['mb_nick']);
// 요청 데이터를 생성합니다.
$requestData = '<?xml version="1.0"?>
<REQUEST001>
<YEAR>2022</YEAR>
<ROOM_NO>' . $roomNo . '</ROOM_NO>
<USER_NO>' . $userNo . '</USER_NO>
</REQUEST001>';
// API 서버 URL을 설정합니다.
$url = 'http://jdream.winsult.co.kr/xml/request.html';
// cURL 세션을 초기화합니다.
$ch = curl_init();
// cURL 옵션을 설정합니다.
curl_setopt($ch, CURLOPT_URL, $url); // 요청할 URL 설정
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 결과 값을 반환받기 설정
curl_setopt($ch, CURLOPT_POST, true); // POST 요청 설정
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestData); // 요청 데이터 설정
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8')); // Content-Type 설정
// cURL 실행 및 결과 값을 받습니다.
$result = curl_exec($ch);
// cURL 세션을 종료합니다.
curl_close($ch);
// 결과 값을 출력합니다.
echo $result;
// 파싱된 데이터 출력
echo 'RESULT_CODE: ' . $xml_data->RESPONSE001->RESULT_CODE . '<br>';
echo 'RESULT_MSG: ' . $xml_data->RESPONSE001->RESULT_MSG . '<br>';
echo 'REQ_SEQ: ' . $xml_data->RESPONSE001->REQ_SEQ . '<br>';
echo 'RES_SEQ: ' . $xml_data->RESPONSE001->RES_SEQ . '<br>';
echo 'RESULT_DATA: ' . $xml_data->RESPONSE001->RESULT_DATA . '<br>';
?>
echo $result; 하면 쭉~ 출력되는데, 필요데이터만 출력하려 하면, 아무것도 안 나옵니다.
어디가 잘못 됐는지????? 알려 주세요^^ !-->
답변 3
$xml = simplexml_load_string($result);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
foreach($array['RESULTS'] as $name => $value)
{
echo $name. '=>' . $value ."<br>";
}
echo 'TOT_CNT => '. $array['TOT_CNT'] ."<br>";
foreach ($array['ACCOMMODATION_INFO'] as $key => $value) {
if (is_array($value)) {
foreach ($value as $sub_key => $sub_value) {
echo "$key $sub_key => $sub_value<br>";
}
} else {
echo "$key => $value<br>";
}
}
echo "<textarea>".$result."</textarea>";
하면 textarea 안에 어떤 게 출력되나요?
<textarea> 안의 내용을 봐야 파싱방법을 알 수 있습니다.
textarea 내용이 그렇다면 저것이 어떤 형태로 치환되기를 원하시나요?
답변을 작성하시기 전에 로그인 해주세요.