|
|
| |
php ³»ÀåÇÔ¼öÀ» ÀÌ¿ëÇÑ XML Parser |
|
|
|
12³â Àü |
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>';
}
?>
http://kr.php.net/manual/kr/book.xml.php |
|
̵̧ : 609 |
̵̧
¸ñ·Ï
|
|
| |
|