sub[$XMLpos[$Tiefe]]->data .= htmlentities(convertValues($Data), ENT_QUOTES);
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) {
global $XMLDEBUG;
//$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 (file_exists($file)) {
if (!($fp = fopen($file, "r"))) {
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) { foreach ($Sourse->sub as $key => $value) { if ($value->name == $Name) { return $value; } } echo "