안녕하세요, 토스트 데브입니다!
API 요청이나 외부 시스템과 연동할 때 XML로 응답을 받는 경우가 종종 있습니다.
이번 글에서는 PHP에서 XML 데이터를 받아서 처리(파싱)하는 방법을 알아보겠습니다.
✅ XML이란?
XML(eXtensible Markup Language)은 데이터 구조를 표현하기 위한 마크업 언어입니다.
HTML처럼 태그로 구성되지만, 사용자 정의 태그를 사용할 수 있어 시스템 간 데이터 교환에 많이 사용됩니다.
<user>
<name>토스트</name>
<email>toast@example.com</email>
</user>
✅ PHP에서 XML 응답 처리 방법
PHP에는 XML을 파싱할 수 있는 여러 기능이 내장되어 있습니다.
대표적으로 두 가지 방법이 있습니다.
🔹 1. SimpleXML 사용 (가장 간단한 방법)
<?php
$xmlString = <<<XML
<user>
<name>토스트</name>
<email>toast@example.com</email>
</user>
XML;
$xml = simplexml_load_string($xmlString);
echo "이름: " . $xml->name . "<br>";
echo "이메일: " . $xml->email;
?>
📌 simplexml_load_string()은 문자열 형태의 XML을 객체처럼 쉽게 접근할 수 있도록 변환해줍니다.
📥 외부 파일 또는 API 응답 처리 예시
$xml = simplexml_load_file("https://example.com/data.xml");
foreach ($xml->item as $item) {
echo $item->title . "<br>";
}
🔹 2. DOMDocument 사용 (정교한 처리에 적합)
<?php
$xmlString = <<<XML
<user>
<name>토스트</name>
<email>toast@example.com</email>
</user>
XML;
$dom = new DOMDocument();
$dom->loadXML($xmlString);
$name = $dom->getElementsByTagName("name")->item(0)->nodeValue;
$email = $dom->getElementsByTagName("email")->item(0)->nodeValue;
echo "이름: $name<br>";
echo "이메일: $email";
?>
📌 DOMDocument는 XML을 노드 단위로 정밀하게 제어할 수 있어 복잡한 구조를 다룰 때 유리합니다.
✅ XML 응답이 API에서 올 때
XML 응답을 받을 땐 보통 file_get_contents() 또는 cURL을 통해 데이터를 요청합니다.
예: file_get_contents()로 XML API 불러오기
$url = "https://example.com/api/user.xml";
$response = file_get_contents($url);
$xml = simplexml_load_string($response);
echo $xml->name;
외부 요청에는 보안 설정(allow_url_fopen, HTTPS 인증 등)도 함께 고려해야 합니다.
✅ XML 처리 시 주의사항
항목 | 설명 |
특수 문자 | &, <, > 등은 XML 규칙에 맞게 인코딩 필요 |
인코딩 | UTF-8로 인코딩 여부 확인 (<?xml version="1.0" encoding="UTF-8"?>) |
에러 처리 | libxml_use_internal_errors(true) 설정으로 에러 핸들링 가능 |
✨ 마무리 요약
✔ PHP는 XML 파싱 기능이 기본 내장되어 있음
✔ SimpleXML은 간단하고 빠르게 사용 가능
✔ DOMDocument는 정교하고 복잡한 구조에 유리
✔ API 응답이 XML일 경우 file_get_contents()나 cURL로 받아 파싱
XML은 JSON보다 다소 무겁지만, 여전히 금융, 공공데이터, 레거시 시스템에서 많이 사용되고 있습니다.
PHP에서도 어렵지 않게 XML을 다룰 수 있으니 상황에 맞게 활용해보세요!
#PHPXML #XML파싱 #SimpleXML #DOMDocument #XML응답처리 #웹개발 #API연동 #PHP기초 #PHP강의 #PHP데이터처리 #toastdev #XML분석 #웹서비스개발
'Programming > PHP' 카테고리의 다른 글
[PHP] #15 PHP로 JSON 응답처리, 파싱부터 API 응답까지 완벽 정리! (2) | 2025.07.26 |
---|---|
[PHP] #13 PHP 세션(Session)과 쿠키(Cookie) 완벽 이해하기 (2) | 2025.07.24 |
[PHP] #12 PHP 폼 데이터 입력 검증 및 보안, 안전한 웹 개발의 시작 (0) | 2025.07.23 |
[PHP] #11 PHP 폼 데이터 처리, GET과 POST 처리 방식까지 완벽정리! (2) | 2025.07.22 |
[PHP] #10 PHP 함수(Function), 정의, 호출, 매개변수, 변환값, 배열 변환까지 완벽 정리! (0) | 2025.07.21 |