내장된 DOM 구문 분석기를 사용하면 PHP에서 XML 문서를 처리할 수 있습니다.
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 문서를 트리 구조로 변환합니다. 전체 문서를 분석하고 DOM(문서 개체 모델)과 같은 트리의 요소에 대한 액세스를 제공합니다.
이벤트 기반 파서: XML 문서를 일련의 이벤트로 처리합니다. 특정 이벤트가 발생하면 파서는 이를 처리하기 위해 함수를 호출합니다.
DOM 파서는 트리 기반 파서입니다.
다음 XML 문서 조각을 살펴보십시오.
<?xml version="1.0" 인코딩="ISO-8859-1"?><from>자니</from>
XML DOM은 위의 XML을 트리 구조로 처리합니다.
레벨 1: XML 문서
수준 2: 루트 요소: <from>
수준 3: 텍스트 요소: "Jani"
DOM XML 파서 기능은 PHP 코어의 필수적인 부분입니다. 이 기능을 사용하기 위해 설치가 필요하지 않습니다.
이 예에서는 다음 XML 파일이 사용됩니다.
<?xml version="1.0" 인코딩="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>알림</heading><body>Don 이번 주말에 저를 잊지 마세요!</body></note>
XML 파서를 초기화하고, XML을 로드하고, 출력해야 합니다.
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");print $xmlDoc->saveXML();?>
위 코드는 다음을 출력합니다:
ToveJaniReminder 이번 주말에 저를 잊지 마세요!
브라우저 창에서 소스 코드를 보면 다음 HTML이 표시됩니다.
<?xml version="1.0" 인코딩="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>알림</heading><body>Don 이번 주말에 저를 잊지 마세요!</body></note>
위의 예에서는 DOMDocument-Object를 만들고 "note.xml"의 XML을 이 문서 개체에 로드합니다.
saveXML() 함수는 내부 XML 문서를 문자열에 넣어서 출력할 수 있도록 합니다.
우리는 XML 파서를 초기화하고, XML을 로드하고, <note> 요소의 모든 요소를 반복하려고 합니다.
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item-> nodeName . " = " . $item->노드값 }?>
위 코드는 다음을 출력합니다:
#text = to = Tove#text = from = Jani#text =heading = Reminder#text = body = 이번 주말에 저를 잊지 마세요!#text =
위의 예에서는 각 요소 사이에 빈 텍스트 노드가 있음을 알 수 있습니다.
XML이 생성되면 일반적으로 노드 사이에 공백이 포함됩니다. XML DOM 파서는 이를 일반 요소로 취급하므로 주의를 기울이지 않으면 문제가 발생할 수 있습니다.
XML DOM에 대해 자세히 알아보려면 XML DOM 튜토리얼을 방문하세요.