다섯번째는 XML.
XML Expat Parser
- XML Parser는 두가지 종류가 있음
- Tree 기반 parser : XML 문서를 트리구조로 변환, 문서 전체를 분석하고, 트리의 각 요소에 접근. DOM(Document Object Model)
- Event 기반 parser : XML 문서를 이벤트의 연속으로 봄. 특정 이벤트가 발생하면 그와 연결된 함수를 호출하는 방식. 문서의 구조보다 내용에 집중. 더 빠르다. XML 구조에 문제가 있어도 문제없음.
- Expat Parser는 Event 기반 parser임. PHP 웹 어플에 최적
- Expat Parser는 PHP 에 내장되어 있음
XML DOM
<!--?xml version="1.0" encoding="UTF-8"?-->
<from>Jani</from>
- 레벨 1 : XML document
- 레벨 2 : Root element : <from>
- 레벨 3 : text element : "Jani"
SimpleXML
- PHP5에서 새롭게 등장
- XML 요소의 이름과 text를 간단하게 추출
- 코드를 간단하게 짤 수 있음
- XML 문서를 객체로 변환함
- 요소는 SimpleXMLElement 객체의 속성(attribute)로 변환됨. 어느 레벨에 여러개의 요소가 있을 경우 배열에 들어가게 됨
- 속성은 associative 배열로 접근가능 (index가 attribute의 name)
- 요소의 text는 문자열로 변환됨. 여러개의 text 노드가 있을 경우, 순서대로 배열됨
- SimpleXML은 XML파일로부터 데이터를 읽거나 추출하거나, 텍스트 노드/속성을 편집할 때 빠르고 간단하게 수행가능
- 복잡한 XML의 경우, Expat이나 DOM을 사용하는 것이 나음