개발도구/PHP,ASP,JSP,SCRIPT
[파싱 xml - 잘 안씀] SimpleXMLElement Object
Hay's App
2011. 10. 20. 11:14
function XMLParse($Data)
{
$rXml = xml_parser_create(); //xml 파서 생성
$arXml = array(); //파싱된 xml을 저장할 임시 배열
//대문자로 변경(default value=1, 0=disable, 1=enable)
xml_parser_set_option($rXml, XML_OPTION_CASE_FOLDING, 0);
//공백값 무시
xml_parser_set_option($rXml, XML_OPTION_SKIP_WHITE, 1);
//배열에 XML구조 저장
xml_parse_into_struct($rXml, $Data, $arXml);
xml_parser_free($rXml);
/*
echo "<pre>";
print_r($arXml);
echo "</pre>";
*/
//Charset 확인
$ary[] = "ASCII";
$ary[] = "EUC-KR";
$ary[] = "UTF-8";
$enc = mb_detect_encoding($Data, $ary);
echo "CharSet = ".$enc;
//XML 배열 생성
$NodeKey = 0;
foreach($arXml as $key => $arNode)
{
//'open', 'complete', 'close'로 구분
switch ($arNode['type'])
{
case 'open':
break;
case 'complete':
$arNode['value'] = mb_convert_encoding( $arNode['value'], "EUC-KR", $enc); //Charset 변경
$arXmlAssoc[$NodeKey][$arNode['tag']] = $arNode['value'];
break;
case 'close':
$NodeKey++;
break;
}
}
return $arXmlAssoc;
}
$handle = fopen("coupon_list.asp", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
$ResultArr= XMLParse($contents);
echo "<pre>";
print_r($ResultArr);
echo "</pre>";
echo $ResultArr[1][STATUS];