www.gusucode.com > 同城苏州黄页系统php源码程序 > lib/XmlClasses.class.php
<? class XmlClasses { var $xmlstr = '' ; var $xmlpath = '' ; var $classes = array() ; function XmlClasses( $path ) { $this->xmlpath = $path ; $this->xmlstr = file_get_contents($path) ; $this->_ParseLevel( $this->classes, $this->xmlstr, 1 ) ; } function _ParseLevel( &$parent, $xmlstr, $level ) { $TagName = "level{$level}class" ; if( preg_match_all( "|<$TagName\s*code=\"([^\"]+)\"\s*name=\"([^\"]+)\"\s*>(.+?)</$TagName>|s", $xmlstr, $subxml ) ) { foreach ($subxml[3] as $idx=>$subxmlstr) { $code = $subxml[1][$idx] ; $node = array( 'code' => $code , 'name' => $subxml[2][$idx] , 'children' => array() ) ; $parent[$code] = $node ; $this->_ParseLevel( $parent[$code]['children'], $subxmlstr, $level+1) ; } } if( preg_match_all( "|<$TagName\s*code=\"([^\"]+)\"\s*name=\"([^\"]+)\"\s*/>|s", $xmlstr, $subxml ) ) { foreach ($subxml[1] as $idx=>$code) { $node = array( 'code' => $code , 'name' => $subxml[2][$idx] , 'children' => array() ) ; $parent[$code] = $node ; } } } } ?>