[PHP] #14 PHP로 XML 응답 처리 하는 방법, 외부 데이터 읽기 및 파싱 가이드!

2025. 7. 25. 16:00·Programming/PHP
반응형

 

 

안녕하세요, 토스트 데브입니다!
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
'Programming/PHP' 카테고리의 다른 글
  • [PHP] #15 PHP로 JSON 응답처리, 파싱부터 API 응답까지 완벽 정리!
  • [PHP] #13 PHP 세션(Session)과 쿠키(Cookie) 완벽 이해하기
  • [PHP] #12 PHP 폼 데이터 입력 검증 및 보안, 안전한 웹 개발의 시작
  • [PHP] #11 PHP 폼 데이터 처리, GET과 POST 처리 방식까지 완벽정리!
TOASTDEV
TOASTDEV
인스턴트 코딩 #토스트데브 #토스트뎁 #코딩공부 #개발입문
  • TOASTDEV
    토스트뎁
    TOASTDEV
    • 분류 전체보기 (59) N
      • 알쓸신잡 (20)
        • 코딩에 대하여 (13)
        • 컴퓨터에 대하여 (5)
        • IT 국내외 소식 (2)
      • Web Front (6)
        • HTML (6)
        • CSS (0)
        • JavaScript (0)
      • Programming (15)
        • PHP (15)
      • Database (7) N
        • SQL (7) N
        • MySQL (0)
      • Server (11) N
        • Linux (11) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Youtube Toastdev
    • Naver Blog
  • 공지사항

    • [유튜브] 유튜브 영상 업로드 안내
  • 인기 글

  • 태그

    php기초
    코딩공부
    php코딩
    html기초
    php문법
    ict
    php
    프론트엔드
    ubuntuserver
    리눅스서버
    웹프로그래밍
    SQL문법
    SQL기초
    HTML
    웹개발입문
    리눅스기초
    데이터베이스
    ubuntu서버
    코딩기초
    코딩입문
    서버입문
    dbms
    우분투서버
    서버관리
    웹개발기초
    SQL강의
    데이터분석
    웹개발
    sql
    php입문
  • 최근 댓글

  • 최근 글

  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
TOASTDEV
[PHP] #14 PHP로 XML 응답 처리 하는 방법, 외부 데이터 읽기 및 파싱 가이드!
상단으로

티스토리툴바