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")))
{
die("could not open XML input");
}
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); } /*#######################################################################################*/ function getXMLsubPease( $Sourse, $Name ) { while(list($key, $value) = each($Sourse->sub)) if( $value->name == $Name) return $value; echo "