PHP XML DOM

내장된 DOM 파서는 PHP에서 XML 문서를 처리할 수 있게 합니다。

DOM이 무엇인가요?

W3C DOM은 HTML과 XML 문서에 대한 표준 객체 집합을 제공하고, 이러한 문서에 대한 접근 및操作을 위한 표준 인터페이스를 제공합니다。

W3C DOM은 다른 부분 (Core, XML, HTML)과 다른 단계 (DOM Level 1/2/3)로 나뉩니다:

  • Core DOM - 어떤 구조화 문서에도 표준 객체 집합을 정의
  • XML DOM - XML 문서에 표준 객체 집합을 정의
  • HTML DOM - HTML 문서에 표준 객체 집합을 정의

XML DOM에 대해 더 많은 지식을 배우고 싶다면, 우리의 사이트를 방문하세요 XML DOM 교본

XML 파서

XML 문서를 읽고 업데이트하려면 - 생성하고 처리하려면 XML 파서가 필요합니다。

기본적인 XML 파서 유형이 두 가지 있습니다:

  • 트리 기반 파서:이 파서는 XML 문서를 트리 구조로 변환합니다. 전체 문서를 분석하고, 문서의 요소에 대한 API를 제공합니다. 예를 들어, 문서 객체 모델 (DOM)。
  • 이벤트 기반 파서:XML 문서를 일련의 이벤트로 보고, 특정 이벤트가 발생할 때마다 파서가 함수를 호출하여 처리합니다。

DOM 파서는 트리 기반 파서입니다。

다음과 같은 XML 문서 부분을 보세요:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>John</from>

XML DOM은 XML을 트리 구조로 보입니다:

  • Level 1: XML 문서
  • Level 2: 루트 요소: <from>
  • Level 3: 텍스트 요소: "John"

설치

DOM XML 파서는 PHP의 핵심 구성 요소입니다. 설치 없이도 이 함수를 사용할 수 있습니다。

XML 파일

다음과 같은 XML 파일을 사용할 예정입니다:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>추억</heading>
<body>기억하십니까 회의를!</body>
</note>

XML 로드 및 출력

XML 파서를 초기화하고 XML을 로드하고 출력하려면:

예제

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

위의 코드의 출력:

George John Reminder 기억하십니까 회의를!

브라우저 창에서 소스 코드를 확인하면 다음과 같은 HTML을 볼 수 있습니다:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>추억</heading>
<body>기억하십니까 회의를!</body>
</note>

위의 예제는 DOMDocument 객체를 생성하고, "note.xml"의 XML을 이 문서 객체에 로드합니다.

saveXML() 함수는 내부 XML 문서를 문자열에 넣어, 그것을 출력할 수 있게 합니다.

XML 반복

우리는 XML 파서를 초기화하고, XML을 로드하고, <note> 요소의 모든 요소를 반복하려고 합니다:

예제

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>

위의 코드의 출력:

#text = 
to = George
#text = 
from = John
#text = 
heading = 기억할 것
#text = 
body = 회의를 잊지 마세요!
#text =

위의 예제에서, 각 요소 사이에 공백 텍스트 노드가 있음을 볼 수 있습니다.

XML이 생성될 때, 일반적으로 노드 사이에 공백이 포함됩니다. XML DOM 파서는 그들을 일반적인 요소로 간주하며, 주의하지 않으면 때로는 문제를 일으킬 수 있습니다.

XML DOM에 대해 더 많은 지식을 배우고 싶다면, 우리의 사이트를 방문하세요 XML DOM 교본