XML
01.<?xml version="1.0" encoding="UTF-8" ?>
02.<PROVINCE>
03. <AREA code="1">강원도
04. <AREA code="2">경기도
05. <AREA code="3">경상남도
06. <AREA code="4">경상북도
07. <AREA code="5">광주광역시
08. <AREA code="6">대구광역시
09. <AREA code="7">대전광역시
10. <AREA code="8">부산광역시
11. <AREA code="9">서울특별시
12. <AREA code="10">울산광역시
13. <AREA code="11">인천광역시
14. <AREA code="12">전라남도
15. <AREA code="13">전라북도
16. <AREA code="14">제주특별자치도
17. <AREA code="15">충청남도
18. <AREA code="16">충청북도
19.</PROVINCE>
소스
01./**
02. * XMLReader 을 이용하여 XML을 다룬다.
03. *
04. * 자세한 설명및 레퍼런스는 http://kr.php.net/manual/kr/book.xmlreader.php 를 참고
05. */
06.
07. XMLReader::NONE; // 노드가 아님
08. XMLReader::ELEMENT; // 엘리먼트 시작
09. XMLReader::ATTRIBUTE; // 속성 노드
10. XMLReader::TEXT; // 텍스트 노드
11. XMLReader::END_ELEMENT; // 엘리먼트 끝
12. XMLReader::CDATA; // 엘리먼트 끝
13.
14. $oXml = new XMLReader(); // XMLReader 를 생성시킨다.
15. $oXml->open('./test.xml'); // 파일을 읽는다.
16. $arXml = array(); // 임시 배열
17. while ($oXml->read()) { // read() 가 false 이 될때까지 loop
18. switch ($oXml->nodeType) // 노드 타입으로 분기 하여 처리
19. {
20. case XMLReader::ELEMENT: // 노드 타입이 Element일경우
21. if($oXml->hasAttributes) // attribute 가 있을때
22. {
23. $oXml->moveToNextAttribute(); // next attribute 로 dlehd
24. $nCode = (int)$oXml->value; // attribute를 읽는다.
25. /**
26. * 현재 예제에서는 attribute 가 1개 (code) 가 있으므로 위와 같이 했지만. attribute가 여러개 일경우
27. * $oXml->name 으로 속성을 구분 할 수 있다.
28. */
29. }
30. $oXml->read(); // 다음노드로 이동
31. $strValue = trim($oXml->value); // 값을 읽는다. (공백,개행문자가 나올수 있으므로 trim시킴)
32. if(strlen($strValue) > 0) // 문자길이가 0이상일때
33. {
34. // 임시 배열에 넣는다.
35. $arXml[] = array('code' => $nCode, 'value'=> $strValue);
36. }
37. break;
38. }
39. }
40. $oXml->close(); // XMLReader 를 닫는다.
41.
42. foreach ($arXml as $arElement)
43. {
44. echo $arElement['code'];
45. echo '=>';
46. echo $arElement['value'];
47. echo '<BR>';
48. }
결과
1=>강원도
2=>경기도
3=>경상남도
4=>경상북도
5=>광주광역시
6=>대구광역시
7=>대전광역시
8=>부산광역시
9=>서울특별시
10=>울산광역시
11=>인천광역시
12=>전라남도
13=>전라북도
14=>제주특별자치도
15=>충청남도
16=>충청북도
'php' 카테고리의 다른 글
| php 원단위 절삭 하기 (0) | 2013.04.27 |
|---|---|
| InnerHTML and Select option in IE (0) | 2013.04.27 |
| 무조건 알아야 할 PHP 속도 테스트 14 가지 (0) | 2013.04.27 |
| 리눅스 2.6 pdflush VS. 리눅스 2.4 bdflush, kupdate (0) | 2013.04.27 |
| 외부사이트의 이미지(파일) 크기 구하기 (0) | 2013.04.27 |
댓글