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 문서를 다룰 때 유용합니다.