PHP XML 다루기 - XML Reader 를 이용

2009/07/28 11:39
PHP XML 다루기 - XML Reader 를 이용

PHP XML 다루기 - XMLReader
PHP XML 다루기 - XML Parser
PHP XML 다루기 - Document Object Model
XML
 

	강원도 
	경기도 
	경상남도 
	경상북도 
	광주광역시 
	대구광역시 
	대전광역시 
	부산광역시 
	서울특별시 
	울산광역시 
	인천광역시 
	전라남도 
	전라북도 
	제주특별자치도 
	충청남도 
	충청북도

소스

/**
	 * XMLReader 을 이용하여 XML을 다룬다. 
	 * 
	 * 자세한 설명및 레퍼런스는 http://kr.php.net/manual/kr/book.xmlreader.php 를 참고 
	 */
	
	XMLReader::NONE;		// 노드가 아님
	XMLReader::ELEMENT;		// 엘리먼트 시작
	XMLReader::ATTRIBUTE;	// 속성 노드
	XMLReader::TEXT;		// 텍스트 노드
	XMLReader::END_ELEMENT;	// 엘리먼트 끝
	XMLReader::CDATA;	// 엘리먼트 끝
	
	$oXml = new XMLReader();	// XMLReader 를 생성시킨다.
	$oXml->open('./test.xml');	// 파일을 읽는다.
	$arXml = array();	// 임시 배열
	while ($oXml->read()) {	// read() 가 false 이 될때까지 loop
		switch ($oXml->nodeType)	// 노드 타입으로 분기 하여 처리
		{
			case XMLReader::ELEMENT:	// 노드 타입이 Element일경우 
				if($oXml->hasAttributes)	// attribute 가 있을때 
				{
					$oXml->moveToNextAttribute();	// next attribute 로 dlehd
					$nCode = (int)$oXml->value;		// attribute를 읽는다.
					/**
					 * 현재 예제에서는 attribute 가 1개 (code) 가 있으므로 위와 같이 했지만. attribute가 여러개 일경우 
					 * $oXml->name 으로 속성을 구분 할 수 있다. 
					 */
				}
				$oXml->read();	// 다음노드로 이동
				$strValue = trim($oXml->value);	// 값을 읽는다.  (공백,개행문자가 나올수 있으므로 trim시킴)
				if(strlen($strValue) > 0)	// 문자길이가 0이상일때
				{
					// 임시 배열에 넣는다.
					$arXml[] = array('code' => $nCode, 'value'=> $strValue);
				}
				break;
		}
	}
	$oXml->close();	// XMLReader 를 닫는다.
	
	foreach ($arXml as $arElement)
	{
		echo $arElement['code'];
		echo '=>';
		echo $arElement['value'];
		echo '
'; }

결과
1=>강원도
2=>경기도
3=>경상남도
4=>경상북도
5=>광주광역시
6=>대구광역시
7=>대전광역시
8=>부산광역시
9=>서울특별시
10=>울산광역시
11=>인천광역시
12=>전라남도
13=>전라북도
14=>제주특별자치도
15=>충청남도
16=>충청북도

"Tip" 카테고리의 다른 글