xml로 작업을 할것이 있어서 찾던중 다른분이 만든것을 찾게 되어서 해당자료를 올려놓는다.
출처 : http://www.cyworld.com/bomnarain/9362771
<?xml version="1.0" encoding="UTF-8" ?>
<PROVINCE>
<AREA code="1">강원도</AREA>
<AREA code="2">경기도</AREA>
<AREA code="3">경상남도</AREA>
<AREA code="4">경상북도</AREA>
<AREA code="5">광주광역시</AREA>
<AREA code="6">대구광역시</AREA>
<AREA code="7">대전광역시</AREA>
<AREA code="8">부산광역시</AREA>
<AREA code="9">서울특별시</AREA>
<AREA code="10">울산광역시</AREA>
<AREA code="11">인천광역시</AREA>
<AREA code="12">전라남도</AREA>
<AREA code="13">전라북도</AREA>
<AREA code="14">제주특별자치도</AREA>
<AREA code="15">충청남도</AREA>
<AREA code="16">충청북도</AREA>
</PROVINCE>
=========================================================================================
/**
*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;
}
}
foreach ($arXmlAssoc['Province']['Area'] as $arElement)
{
echo $arElement['attr']['code'];
echo '=>';
echo $arElement['value'];
echo '<BR>';
}
=========================================================================================
결과
1=>강원도
2=>경기도
3=>경상남도
4=>경상북도
5=>광주광역시
6=>대구광역시
7=>대전광역시
8=>부산광역시
9=>서울특별시
10=>울산광역시
11=>인천광역시
12=>전라남도
13=>전라북도
14=>제주특별자치도
15=>충청남도
16=>충청북도
'프로그래밍 > PHP' 카테고리의 다른 글
[PHP] 이전 웹주소 처리 (0) | 2014.05.14 |
---|---|
[PHP] 특정문자 제거. (0) | 2014.05.14 |
[PHP] XML 다루기 - XMLReader (0) | 2012.07.24 |
[PHP] intval()함수 (0) | 2011.11.08 |
[PHP] str_pad 공간 채워넣기. (0) | 2011.07.25 |