-
[PHP] 47. XML Expat Parser - PHP 강좌, PHP5Web/PHP 2015. 6. 13. 14:11
PHP XML Expat Parser
내장된 XML Expat 파서는 PHP에서 XML 문서를 처리하는데 쉽게 해줍니다.
1. The XML Expat Parser
Expat 파서는 event-based 파서입니다.
XML 부분을 봅시다:
<from>Jani</from>event-based 파서는 3가지 이벤트로써 XML을 봅니다:
- 시작 요소: from
- 시작 CDATA 섹션, 값: Jani
- 끝 요소: from
XML Expat 파서 함수는 PHP 코어의 부분입니다. 설치할 필요없이 사용가능 합니다.
2. Initializing the XML Expat Parser
PHP에서 XML Expat 파서를 초기화하기 위해, 다른 XML 이벤트를 위한 몇몇의 처리기를 선언하고, XML 파일을 분석합니다.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061<!DOCTYPE html><html><body><?php//Initialize the XML parser$parser=xml_parser_create();//Function to use at the start of an elementfunction start($parser,$element_name,$element_attrs) {switch($element_name) {case "NOTE":echo "-- Note --<br>";break;case "TO":echo "To: ";break;case "FROM":echo "From: ";break;case "HEADING":echo "Heading: ";break;case "BODY":echo "Message: ";}}//Function to use at the end of an elementfunction stop($parser,$element_name) {echo "<br>";}//Function to use when finding character datafunction char($parser,$data) {echo $data;}//Specify element handlerxml_set_element_handler($parser,"start","stop");//Specify data handlerxml_set_character_data_handler($parser,"char");//Open XML file$fp=fopen("note.xml","r");//Read datawhile ($data=fread($fp,4096)) {xml_parse($parser,$data,feof($fp)) ordie (sprintf("XML Error: %s at line %d",xml_error_string(xml_get_error_code($parser)),xml_get_current_line_number($parser)));}//Free the XML parserxml_parser_free($parser);?></body></html>cs 예제 설명:
1. xml_parser_create() 함수로 XML 파서 초기화
2. 각각 이벤트 처리기를 사용하기 위한 함수 생성
3. xml_set_element_handler() 함수에 파서가 여는 태그와 닫는 태그를 만날 때 실행되어 질 함수를 명시하여 추가.
4. xml_set_character_data_handler() 함수에 파서가 문자 데이터를 만날 때 실행되어 질 명시된 함수를 추가.
5. xml_parse() 함수로 note.xml을 분석.
6. 에러가 났을 경우, xml_error_string() 함수로 XML 에러를 에러 설명으로 변환.
7. xml_parser_free() 함수를 호출하여 xml_parser_create() 함수로 할당된 메모리를 풀어줌.
* 이 강좌는 'w3schools'를 참조하여 작성하였습니다.
'Web > PHP' 카테고리의 다른 글
[PHP] 50. AJAX 와 PHP(AJAX and PHP) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 49. AJAX 소개( AJAX Introduction) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 48. XML DOM Parser - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 46. SimpleXML 파서 - 노드/속성 값 얻기(Simple XML Parsers - Get Node/Attribute Values) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 45. SimpleXML 파서(Simple XML Parsers) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 44. XML 파서( XML Parsers) - PHP 강좌, PHP5 (0) 2015.06.13