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 |
댓글