xml 코팅 하는 방법?
본문
공db에서 오픈 api를 사용하려 합니다.
샘플소스로 불러와서 화면에서 확인을 했는데 필요한 값만 화면에 표시하려고 합니다.
print_r($arr); 명령으로 현재 화면에서 확인하는 값은 pre 태그를 사용해서 보여집니다.
[response] => Array
(
[header] => Array
(
[resultCode] => 00
[resultMsg] => 정상
제가 사용하고 싶은 값은 아래와 같습니다.
[0] => Array
(
[bidNtceNo] => 20160500001
[bidNtceOrd] => 00
보니까 화면에서 확인되는 태그 구성은 아래와 같아서 item[0]에 해당하는 값들입니다.
<body>
<items>
<item>
<bidNtceNo>20170431052</bidNtceNo>
<bidNtceOrd>01</bidNtceOrd>
소스를 아무리 뒤져서 그대로 해봐도 필요한 값들이 출력이 되지 않습니다.
현재 마지막 소스는 아래와 같습니다.
$arr = json_decode($response, true);
foreach($arr as $key => $val) {
echo '$key: '. $key .', val: '. $val ."<br />\n";
}
그런데 반복이 되지 않고 맨 처름 배열만 출력하고 끝나 버립니다.
$key: response, val: Array <--- 이렇게 나오고 끝이예요.
xml 의 [response] => Array 맨처음이 이렇게 되어 있습니다.
어떻게 해야 아래 xml 태그에서 필요한 부분의 값만 출력할 수 있을까요?
<body>
<items>
<item>
<bidNtceNo>20170431052</bidNtceNo> <- 여기 값
<bidNtceOrd>01</bidNtceOrd> <- 여기 값
<reNtceYn>N</reNtceYn> <- 여기 값
혹 아시는 분 계시면 답변 부탁드립니다. 미리 감사드립니다.
답변 1
다중배열이어서 그렇습니다.
실제로 $val 을 print_r2($val); 을 해보시면 $val 값에 들어있는 array 값이 나올것입니다.
전체적인 배열 구조가 없어서 답은 못드리고, 배열안의 배열을 호출해서 쓰시면 됩니다.