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 ;	
			}		
		}
		
	}
	
	
	
}

?>