PHP XML


PHP와 XML (PHP and XML)

XML 개념 (Understanding XML)

XML(Extensible Markup Language)은 데이터를 저장하고 전송하기 위한 마크업 언어로, 데이터 구조화와 다양한 응용 프로그램 간 데이터 교환을 지원합니다. XML은 사용자가 직접 정의할 수 있는 태그로 구성되며, 계층 구조를 갖추어 데이터를 표현합니다.

SimpleXML 사용 (Using SimpleXML)

PHP에서 XML을 파싱하고 처리하기 위한 두 가지 주요 방법 중 하나가 SimpleXML입니다. SimpleXML은 XML 데이터를 간편하게 다룰 수 있는 객체 지향적인 방법을 제공합니다.

SimpleXML 예제
php코드 복사<?php
// XML 문자열
$xmlString = '
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="fiction">
    <title>Lord of the Rings</title>
    <author>J.R.R. Tolkien</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>
';

// XML 문자열을 SimpleXML 객체로 로드
$xml = simplexml_load_string($xmlString);

// 데이터 출력 예제
foreach ($xml->book as $book) {
  echo "Title: " . $book->title . "<br>";
  echo "Author: " . $book->author . "<br>";
  echo "Year: " . $book->year . "<br>";
  echo "Price: $" . $book->price . "<br><br>";
}
?>

위 예제에서는 XML 문자열을 simplexml_load_string() 함수를 사용하여 SimpleXML 객체로 로드하고, 각 책의 제목, 저자, 출판년도, 가격을 출력하는 예제입니다.

DOMDocument 사용 (Using DOMDocument)

DOMDocument는 PHP의 DOM(Document Object Model) 확장을 사용하여 XML 문서를 파싱하고 처리하는 또 다른 방법입니다. DOM은 XML 문서의 구조를 트리 구조로 표현하며, 각 노드를 객체로 다룰 수 있습니다.

DOMDocument 예제
php코드 복사<?php
// XML 문자열
$xmlString = '
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="fiction">
    <title>Lord of the Rings</title>
    <author>J.R.R. Tolkien</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>
';

// DOMDocument 객체 생성
$doc = new DOMDocument();
$doc->loadXML($xmlString);

// XPath를 사용하여 데이터 조회 및 출력
$xpath = new DOMXPath($doc);
$books = $xpath->query("//book");

foreach ($books as $book) {
  $title = $xpath->query("title", $book)->item(0)->nodeValue;
  $author = $xpath->query("author", $book)->item(0)->nodeValue;
  $year = $xpath->query("year", $book)->item(0)->nodeValue;
  $price = $xpath->query("price", $book)->item(0)->nodeValue;
  
  echo "Title: " . $title . "<br>";
  echo "Author: " . $author . "<br>";
  echo "Year: " . $year . "<br>";
  echo "Price: $" . $price . "<br><br>";
}
?>

위 예제에서는 XML 문자열을 DOMDocument 객체로 로드하여 XPath를 사용하여 각 책의 정보를 조회하고 출력하는 방법을 보여줍니다.

PHP에서는 SimpleXML과 DOMDocument를 사용하여 XML 데이터를 효과적으로 다룰 수 있습니다. SimpleXML은 간단하고 사용하기 쉬우며, DOMDocument는 더욱 복잡한 XML 문서를 다룰 때 유용합니다.


Leave a Reply

Your email address will not be published. Required fields are marked *