sub[ $XMLpos[$Tiefe] ]->data .= convertValues($Data); if( $XMLDEBUG) echo "???". $Objekt->sub[ $XMLpos[$Tiefe] ]->name. "|$Data|$Tiefe???
"; } else dataXMLmain( $Data, $Objekt->sub[ $XMLpos[$Tiefe] ], $Tiefe+1); } function startXMLmain( $Data, &$Objekt, $Tiefe ) { global $XMLpos, $depth, $XMLDEBUG; if( $XMLDEBUG) if($Tiefe==1) { print_r(array_values ($XMLpos)); echo "--".$Data->name; echo " #$Tiefe/$depth#"; } if( $depth==$Tiefe) { $Objekt->sub[ $XMLpos[$Tiefe] ] = $Data; if( $XMLDEBUG) echo "|". $XMLpos[$Tiefe]."|". $Objekt->sub[ $XMLpos[$Tiefe] ]->name. " ". $Data->name." save|". "#-#
"; } else startXMLmain( $Data, $Objekt->sub[ $XMLpos[$Tiefe] ], $Tiefe+1); } function start_element_handler($parser, $name, $attribs) { global $depth, $XMLmain, $XMLpos; $Data = new element; $Data->name = $name; while(list($key, $value) = each($attribs)) $Data->attributes[$key] = convertValues($value); $Data->depth = $depth; $XMLpos[$depth]++; if( $depth==0) $XMLmain= $Data; else startXMLmain( $Data, $XMLmain, 1); $depth++; } function end_element_handler($parser, $name) { global $depth, $XMLpos; $XMLpos[$depth]=0; $depth--; } function character_data_handler($parser, $data) { global $XMLmain; if( strlen(trim($data)) ) dataXMLmain( $data, $XMLmain, 1); } /*#######################################################################################*/ function readXMLfile( $file ) { //$xml_parser = xml_parser_create_ns(); $xml_parser = xml_parser_create("UTF-8"); xml_set_element_handler($xml_parser, "start_element_handler", "end_element_handler"); xml_set_character_data_handler($xml_parser, "character_data_handler"); if (!($fp = fopen($file, "r"))) { echo("

could not open XML file \"$file\"

"); return -1; } if( $XMLDEBUG) echo "
";
	while ($data = fread($fp, 4096)) 
	{
		if (!xml_parse($xml_parser, $data, feof($fp))) 
		{
			die(sprintf("XML error: %s at line %d",
				    xml_error_string(xml_get_error_code($xml_parser)),
				    xml_get_current_line_number($xml_parser)));
		}
	}
	if( $XMLDEBUG)	echo "
"; xml_parser_free($xml_parser); return 0; } /*#######################################################################################*/ function getXMLsubPease( $Sourse, $Name ) { while(list($key, $value) = each($Sourse->sub)) if( $value->name == $Name) return $value; echo "

Fehler: getXMLsubPease( $Sourse, $Name ) not found

"; // die; } ?>