YesYo.com MintState Forums  
뒤로    YesYo.com MintState BBS > Tech > Ajax & Issue
검색
멤버이름  오토
비밀번호 
 

 
작성일 : 09-08-27 15:01
php 내장함수을 이용한 XML Parser
 글쓴이 : MintState
조회 : 8,543  
php 내장함수을 이용한 XML Parser

php.net XML Parser 에 보시면 자세한 설명을 보실 수 있습니다.
보통 4.3 버전 이상이면 무리없이 돌아가는것 같네요.

<?
/**
 *XML Parser 을 이용하여 XML을 다룬다. 
 * 
 * 자세한 설명및 레퍼런스는 http://kr.php.net/manual/kr/book.xml.php 를 참고 
 */

$rXml = xml_parser_create();	// xml 파서를 생성시킨다. 
$arXml = array();			// 임시 배열
$strXml = '';				// xml의 내용을 저장할 변수
/**
 * file_get_contents 등의 파일 내용을 읽는 여러 함수를 이용할 수 있다. 
 */
$fp = fopen('./test.xml', 'r');	// xml 파일을 읽는다. 
if($fp)	// 정상적으로 파일이 열렸다면 
{
	while (!feof($fp)) {	// EOF가 될때까지
		$strXml .= fread($fp, 1024);	// 1024 바이트씩 읽어서 임시 변수에 넣는다.
	}
	fclose($fp);	// 파일을 닫는다.
}
xml_parser_set_option($rXml, XML_OPTION_CASE_FOLDING, 0); 	// 대문자로 변경 (기본이 enable이라 disable함)
xml_parser_set_option($rXml, XML_OPTION_SKIP_WHITE, 1);		// 공백값을 무시힌다. 
xml_parse_into_struct($rXml, $strXml, $arXml);	// 읽어들인 XML을 이용해서 배열에 XML구조를 담는다.
xml_parser_free($rXml);

$strNodeKey = null;
$arXmlAssoc = array();
// 연관배열 형식으로 하기 위해서 아래와 같이 처리
foreach ($arXml as $key => $arNode)
{
	switch ($arNode['type'])
	{
		case 'open':
			$strNodeKey = $arNode['tag'];
			$arXmlAssoc[$arNode['tag']];
			break;

		case 'complete':
			if(is_array($arNode['attributes']))
			{
				$arXmlAssoc[$strNodeKey][$arNode['tag']][] = array('attr' => $arNode['attributes'], 'value' => $arNode['value']);
			}
			else 
			{
				$arXmlAssoc[$strNodeKey][$arNode['tag']][] = $arNode['value'];
			}
			break;

		case 'close':
			$nOpenNodeKey = null;
			break;
	}
}




// Echo
foreach ($arXmlAssoc['Province']['Area'] as $arElement)
{
	echo $arElement['attr']['code'];
	echo '=>';
	echo $arElement['value'];
	echo '<BR>';
}
?>
Rated 0/5 (0%) (0 Votes)

(\__/)
(='.'=)
(")_(")~
Search Infomation by MintState
MintState

 
 

Total 32
번호 제   목 글쓴이 날짜 조회
32 Swiper - Most Modern Mobile Touch Slider MintState 02-02 1588
31 [jquery] 스와프 가능한 이미지 배너 - OWL Carousel MintState 05-30 2950
30 구글맵 api 편리하기 사용가능하게 해주는 gmaps.js MintState 03-04 4401
29 jQuery - FullCalendar MintState 03-21 6018
28 jquery - select box MintState 11-25 5980
27 Wowza Streaming Server MintState 09-19 7766
26 jQuery Datepicker MintState 06-23 6901
25 Using the Twitter Search API MintState 06-01 4812
24 Twitter Search using the Twitter API and PHP MintState 06-01 5501
23 PHP Twitter Search API MintState 06-01 5362
22 모바일(iOS 용) 터치 관련 jQuery 플러그인 MintState 04-18 6439
21 GEO <-> KATEC 변환 MintState 02-21 5624
20 Twitter API 링크 MintState 07-13 7834
19 jQuery Simple WYSIWYG Editor MintState 07-02 8353
18 Prototype.js 의 Object 객체의 메소드 MintState 01-19 6613
17 prototype.js 를 이용한 JSON사용 예제 MintState 01-19 10540
16 php 내장함수을 이용한 XML Parser MintState 08-27 8544
15 XML 파싱(xml2array) MintState 08-27 8219
14 ajax의 xml을 javascript 객체형식으로 자동 변환 MintState 07-07 8451
13 Google Maps API (1) MintState 03-18 14209
 1  2  
모바일 버전으로 보기
CopyRight ©2004 - 2017, YesYo.com MintState. ™