PHP XML DOM 파서
내장 DOM 파서를 사용하면 PHP에서 XML 문서를 처리할 수 있습니다.
XML DOM 파서
DOM 파서는 트리 기반 파서입니다.
다음 XML 문서 부분을 보십시오.
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOM은 위의 XML을 트리 구조로 간주합니다.
- 수준 1: XML 문서
- 수준 2: 루트 요소: <from>
- 레벨 3: 텍스트 요소: "Jani"
설치
DOM 파서 기능은 PHP 코어의 일부입니다. 이러한 기능을 사용하기 위해 설치가 필요하지 않습니다.
XML 파일
아래의 XML 파일("note.xml")이 이 예에서 사용됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML 로드 및 출력
우리는 XML 파서를 초기화하고, xml을 로드하고, 그것을 출력하기를 원합니다:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
위 코드의 출력은 다음과 같습니다.
Tove Jani Reminder Don't forget me this weekend!
브라우저 창에서 "소스 보기"를 선택하면 다음 HTML이 표시됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
위의 예는 DOMDocument-Object를 만들고 "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 = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
위의 예에서 각 요소 사이에 빈 텍스트 노드가 있음을 알 수 있습니다.
XML이 생성될 때 종종 노드 사이에 공백이 포함됩니다. XML DOM 파서는 이들을 일반 요소로 취급하며, 이를 인식하지 못하면 때때로 문제가 발생합니다.
XML DOM에 대해 자세히 알아보려면 XML 자습서 를 방문하십시오 .