PHP XML 튜토리얼: 예제를 통해 생성, 구문 분석, 읽기

⚡ 스마트 요약

PHP와 XML은 시스템 간 데이터의 구조화, 저장 및 교환을 위해 함께 작동합니다. 이 가이드에서는 XML, DOM 및 XML 파서에 대해 설명하고, SimpleXML을 사용하여 XML 문서를 읽는 방법과 DOMDocument 클래스를 사용하여 XML 문서를 생성하는 방법을 보여준 다음, 각각의 사용법을 설명합니다.

  • 📄 XML이란 무엇인가: XML은 확장 가능한 마크업 언어(Extensible Markup Language)의 약자로, 데이터를 구조화하고 전송하기 위해 사용자 지정 태그를 정의할 수 있는 태그 기반 형식입니다.
  • 🌳 DOM: 문서 객체 모델(DOM)은 XML 또는 HTML 문서를 트리 구조로 보기 때문에 코드는 노드를 탐색하고 편집할 수 있습니다.
  • 🔄 XML 파서: 파서는 XML 문서를 PHP에서 사용할 수 있는 DOM 객체로 변환합니다. Java스크립트 또는 Python 읽고 변경할 수 있습니다.
  • ???? XML 읽기: simplexml_load_file 함수는 파일을 객체로 로드하므로, $xml->record->name과 같은 화살표 구문을 사용하여 레코드에 접근할 수 있습니다.
  • 🛠️ XML 생성: DOMDocument 클래스는 createElement와 appendChild를 사용하여 노드를 하나씩 생성하며, 마지막으로 파일을 저장합니다.
  • ⚖️ SimpleXML과 DOM의 차이점: SimpleXML은 읽기 속도가 빠르지만, DOMDocument는 정확한 생성과 복잡한 조작에 적합합니다.
  • 🤖 AI 지원: AI 도구는 특정 XML 구조에 대한 구문 분석 코드를 생성하고 XML, JSON 및 PHP 배열 간의 변환을 수행할 수 있습니다.

PHP와 XML

XML이란 무엇입니까?

XML은 Extensible Markup Language의 약어입니다.

XML은 데이터를 구조화하고 저장하며 한 시스템에서 다른 시스템으로 전송하는 데 사용됩니다.

XML은 HTML과 유사합니다. 둘 다 여는 태그와 닫는 태그를 사용합니다. 하지만 HTML과 달리 XML은 사용자가 자신만의 태그를 정의할 수 있도록 허용합니다.

DOM이란 무엇입니까?

DOM은 Document Object Model의 약자입니다.

이는 플랫폼과 언어에 구애받지 않는 표준으로, 다음과 같은 환경에서 데이터에 접근하고 조작하는 방법을 정의합니다.

  • HTML
  • XHTML
  • XML

DOM XML은 XML 문서에 액세스하고 조작하는 데 사용됩니다. 그것 XML 문서를 봅니다 트리 구조처럼.

XML 파서

XML 파서는 XML 문서를 XML 문서 객체 모델(DOM) 객체로 변환하는 프로그램입니다.

그런 다음 XML DOM 객체를 사용하여 조작할 수 있습니다. Java스크립트, PythonPHP 및 기타 언어.

CDATA라는 키워드는 (파싱되지 않은) 문자 데이터의 약자로, XML 문서를 파싱할 때 "<" 및 ">"와 같은 특수 문자를 무시하는 데 사용됩니다.

XML을 사용하는 이유는 무엇입니까?

  • SOAP 및 REST와 같은 웹 서비스는 XML 형식을 사용하여 정보를 교환합니다. 최신 애플리케이션은 웹 서비스를 많이 사용하기 때문에 XML이 무엇이고 어떻게 작동하는지 이해하는 것은 개발자로서 경쟁력을 확보하는 데 도움이 됩니다.
  • XML 문서는 애플리케이션의 구성 설정을 저장하는 데 사용할 수 있습니다.
  • 이 기능을 사용하면 사용자 지정 태그를 직접 만들 수 있어 더욱 유연하게 사용할 수 있습니다.

XML 문서 예

당신이 개발자라고 가정해 봅시다.ping 웹 서비스에서 XML 형식으로 데이터를 가져오는 애플리케이션.

아래는 XML 문서의 예시입니다.

<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
<record man_no = "101">
<name>Joe Paul</name>
<position>CEO</position>
</record>
<record man_no = "102">
<name>Tasha Smith</name>
<position>Finance Manager</position>
</record>
</employees>

이리,

  • “ "는 사용할 XML 버전과 인코딩을 지정합니다.
  • “ ”는 루트 요소입니다.
  • “ … ”는 직원 기록당 하나씩 있는 하위 요소입니다.

PHP를 사용하여 XML을 읽는 방법

이제 직원들의 XML 문서를 읽어 웹 브라우저에 결과를 표시하는 코드를 작성해 보겠습니다. index.php

<?php
$xml = simplexml_load_file('employees.xml');
echo '<h2>Employees Listing</h2>';
$list = $xml->record;
for ($i = 0; $i < count($list); $i++) {
echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>';
echo 'Name: ' . $list[$i]->name . '<br>';
echo 'Position: ' . $list[$i]->position . '<br><br>';
}
?>

이리,

  • “$xml = simplexml_load_file('employees.xml');”는 simplexml_load_file 함수를 사용하여 employees.xml이라는 파일을 불러와 그 내용을 $xml 변수에 할당합니다.
  • "$list = $xml->record;"는 레코드 노드의 내용을 가져옵니다.
  • “for ($i = 0; $i < count(…)…”는 배열을 읽고 결과를 출력하는 for 루프입니다.
  • "$list[$i]->속성()->man_no;" 요소의 man_no 속성을 읽습니다.
  • “$list[$i]->이름;” name 하위 요소의 값을 읽습니다.
  • "$list[$i]->위치;" 위치 하위 요소의 값을 읽습니다.

XML 리더 테스트

index.php 파일을 phptuts/xml 폴더에 저장했다고 가정하고, 해당 폴더로 이동하세요. URL http://localhost/phptuts/xml/index.php

PHP를 사용하여 XML 읽기

PHP를 사용하여 XML 문서를 만드는 방법

이제 PHP를 사용하여 XML 문서를 만드는 방법을 살펴보겠습니다.

다음 코드는 PHP 내장 클래스인 DOMDocument를 사용하여 XML 문서를 생성합니다.

<?php

$dom = new DOMDocument();

$dom->encoding = 'utf-8';

$dom->xmlVersion = '1.0';

$dom->formatOutput = true;

$xml_file_name = 'movies_list.xml';

$root = $dom->createElement('Movies');

$movie_node = $dom->createElement('movie');

$attr_movie_id = new DOMAttr('movie_id', '5467');

$movie_node->setAttributeNode($attr_movie_id);

$child_node_title = $dom->createElement('Title', 'The Campaign');

$movie_node->appendChild($child_node_title);

$child_node_year = $dom->createElement('Year', 2012);

$movie_node->appendChild($child_node_year);

$child_node_genre = $dom->createElement('Genre', 'Comedy');

$movie_node->appendChild($child_node_genre);

$child_node_ratings = $dom->createElement('Ratings', 6.2);

$movie_node->appendChild($child_node_ratings);

$root->appendChild($movie_node);

$dom->appendChild($root);

$dom->save($xml_file_name);

echo "$xml_file_name has been successfully created";
?>

이리,

  • “$dom = new DOMDocument();”는 DOMDocument 클래스의 인스턴스를 생성합니다.
  • "$dom->인코딩 = 'utf-8';" 문서 인코딩을 utf-8로 설정합니다.
  • "$dom->xmlVersion = '1.0';" 버전 번호 1.0을 지정합니다.
  • "$dom->formatOutput = true;" 출력 형식이 올바른지 확인합니다.
  • "$root = $dom->createElement('영화');" Movies라는 루트 노드를 생성합니다.
  • “$attr_movie_id = new DOMAttr('movie_id', '5467');”는 영화 노드의 movie_id 속성을 정의합니다.
  • `$dom->createElement('ElementName', 'ElementValue')`는 자식 노드를 생성합니다. `ElementName`은 요소의 이름(예: Title)을 지정하고, `ElementValue`는 자식 노드의 값(예: The Campaign)을 설정합니다.
  • “$root->appendChild($movie_node);”는 영화 노드를 루트 노드 Movies에 추가합니다.
  • "$dom->appendChild($root);" XML 문서에 루트 노드를 추가합니다.
  • "$dom->저장($xml_file_name);" 웹 서버의 루트 디렉터리에 XML 파일을 저장합니다.
  • "echo "$xml_file_name이 성공적으로 생성되었습니다";"는 성공 메시지를 표시합니다.

XML 테스트 Creator

create_movies_list.php 파일을 phptuts/xml 폴더에 저장했다고 가정하고, 해당 폴더로 이동하세요. URL http://localhost/phptuts/xml/create_movies_list.php

PHP를 사용하여 XML 문서 만들기

movies_list.xml 파일을 엽니다.

PHP를 사용하여 XML 문서 만들기

SimpleXML과 DOMDocument의 차이점

PHP는 XML을 다루는 두 가지 주요 방법을 제공합니다. SimpleXML은 주로 데이터를 읽는 데 적합하고, DOMDocument는 문서를 구성하고 대폭 수정하는 데 더 세밀한 제어 기능을 제공합니다. 아래 표에서 두 방법을 비교합니다.

아래 SimpleXML을 DOMDocument
사용 용이성 아주 간단합니다. 문서가 중첩된 객체처럼 동작합니다. 더 장황하고 노드 기반 API
가장 좋은 읽기 및 간단한 편집 문서 생성 및 복잡한 조작
접근 스타일 $xml->record->name createElement() 및 appendChild()
XPath 지원 네, ->xpath()를 통해 가능합니다. 예, DOMXPath 클래스를 통해 가능합니다.

실용적인 규칙은 피드나 간단한 파일을 읽을 때는 SimpleXML을 먼저 사용하고, 문서를 생성하거나 특정 위치에 노드를 삽입하거나 스키마에 대해 유효성을 검사해야 할 때는 DOMDocument로 전환하는 것입니다.

자주 묻는 질문

둘 다 구조화된 데이터를 저장하지만, XML은 태그를 사용하고 속성, 주석, 스키마를 지원하는 반면, JSON은 더 가볍고 배열과 객체에 직접 매핑됩니다. JSON은 API에 일반적으로 사용되고, XML은 문서와 설정 파일에 적합합니다.

SimpleXML 또는 DOMDocument를 사용하여 파일을 불러온 다음, 노드 값이나 속성을 변경하고 다시 저장합니다. SimpleXML을 사용하는 경우 속성을 편집하고 asXML('file.xml')을 호출하고, DOMDocument를 사용하는 경우 노드를 편집하고 save()를 호출합니다.

XPath는 XML 문서에서 노드를 선택하기 위한 쿼리 언어입니다. PHP에서는 SimpleXML을 사용하여 `$xml->xpath('//record/name')`를 호출하거나 DOMXPath 클래스를 사용하여 일치하는 요소를 가져올 수 있습니다.ping 나무 전체를 통해.

예. AI는 simplexml_load_string, json_encode, json_decode 함수를 사용하여 형식 간 변환 코드를 생성하고, XML 속성이나 혼합 콘텐츠와 같이 깔끔하게 매핑되지 않는 데이터를 표시할 수 있습니다. 결과를 확인해 보세요.

네. XML 샘플을 붙여넣으시면 AI가 필요한 요소와 속성을 정확하게 읽어들이는 SimpleXML 또는 DOMDocument 코드를 생성해 드립니다. 반복되는 레코드를 처리하는 루프도 포함되어 있습니다. 실제 파일로 테스트해 보세요.

이 게시물을 요약하면 다음과 같습니다.