php 내장함수을 이용한 XML Parser
페이지 정보
작성자 MintState 댓글 0건 조회 16,001회 작성일 09-08-27 15:01본문
php 내장함수을 이용한 XML Parser
php.net XML Parser 에 보시면 자세한 설명을 보실 수 있습니다.
보통 4.3 버전 이상이면 무리없이 돌아가는것 같네요.
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>'; } ?>
|
댓글목록
등록된 댓글이 없습니다.