PHP XML DOM
내장된 DOM 구문 분석기를 사용하면 PHP에서 XML 문서를 처리할 수 있습니다.
DOM이란 무엇인가요?
W3C DOM은 HTML 및 XML 문서에 대한 표준 개체 세트는 물론 이러한 문서에 액세스하고 조작하기 위한 표준 인터페이스를 제공합니다.
W3C DOM은 다양한 부분(Core, XML 및 HTML)과 다양한 레벨(DOM 레벨 1/2/3)로 구분됩니다.
* Core DOM - 모든 구조화된 문서에 대한 표준 객체 세트를 정의합니다.
* XML DOM - XML 문서 정의 표준 객체 세트
* HTML DOM - HTML 문서에 대한 표준 객체 세트 정의
자세히 알아보기 XML DOM에 대한 자세한 내용은 XML DOM 튜토리얼을 참조하세요.
XML 구문 분석
XML 문서를 읽고 업데이트하고 생성하고 처리하려면 XML 파서가 필요합니다.
XML 파서에는 두 가지 기본 유형이 있습니다.
· 트리 기반 파서: 이 파서는 XML 문서를 트리 구조로 변환합니다. 전체 문서를 분석하고 DOM(문서 개체 모델)과 같은 트리의 요소에 대한 액세스를 제공합니다.
· 시간 기반 파서: XML 문서를 일련의 이벤트로 처리합니다. 특정 이벤트가 발생하면 파서는 이를 처리하는 함수를 호출합니다.
DOM 파서는 트리 기반 파서입니다.
다음 XML 문서 부분을 참조하세요.
<?xml version="1.0" 인코딩="ISO-8859-1" ?>
<from>Jani</from>
XML DOM 위의 XML을 A로 처리합니다. 트리 구조:
· 레벨 1: XML 문서
· 레벨 2: 루트 요소: <from>
· 레벨 3: 텍스트 요소: "Jani"
설치
DOM XML 파서 기능은 PHP 코어의 필수 부분입니다. 이 기능을 사용하기 위해 설치가 필요하지 않습니다.
XML 파일
이 예에서는 다음 xml_dom.xml 파일이 사용됩니다.
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
XML 로드 및 출력
XML 파서를 초기화하고 XML을 로드한 후 출력해야 합니다.
Instance
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("xml_dom.xml"); print $xmlDoc->saveXML(); ?>
위 코드는 다음을 출력합니다:
ToveJaniReminder이번 주말에 저를 잊지 마세요!
브라우저 창에서 소스 코드를 보면 다음 HTML이 표시됩니다.
위의 예에서는 DOMDocument-Object를 생성하고 "xml_dom.xml"의 XML을 이 문서 개체에 로드합니다.
saveXML() 함수는 내부 XML 문서를 문자열로 변환하여 출력할 수 있도록 합니다.
XML 순회
XML 파서를 초기화하고 XML을 로드하고 < note> 요소:
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("xml_dom.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>
위 코드는 다음을 출력합니다:
#text =
to = 토베
#text =
from = Jani
#text =
제목 = 알림
#text =
body = 이번 주말에 저를 잊지 마세요!
#text =
위의 예에서는 각 요소 사이에 빈 텍스트 노드가 있는 것을 볼 수 있습니다.
XML이 생성되면 일반적으로 노드 사이에 공백이 포함됩니다. XML DOM 파서는 이를 일반 요소로 취급하므로 주의를 기울이지 않으면 문제가 발생할 수 있습니다.
XML DOM에 대해 자세히 알아보려면 XML DOM 튜토리얼을 방문하세요.