diff options
Diffstat (limited to 'includes/funktion_xml.php')
-rw-r--r-- | includes/funktion_xml.php | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/includes/funktion_xml.php b/includes/funktion_xml.php deleted file mode 100644 index 4ab3bfd5..00000000 --- a/includes/funktion_xml.php +++ /dev/null @@ -1,152 +0,0 @@ -<?php -class element { - var $name = ''; - var $attributes = array (); - var $data = ''; - var $depth = 0; - var $sub = array (); -} - -$XMLDEBUG = 0; -$depth = 0; -$XMLmain = new element; -$XMLpos = array ( - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 -); -//$XMLpos = array( 0, 0, 0, 0, 0, 0); - -function convertValues($Data) { - global $XMLDEBUG; - - if ($XMLDEBUG) { - $Data = htmlspecialchars($Data); - $Data = mysql_escape_string($Data); - $Data = htmlentities($Data); - } - - $Data = utf8_decode($Data); - return $Data; -} - -function dataXMLmain($Data, & $Objekt, $Tiefe) { - global $XMLmain, $XMLpos, $depth, $XMLDEBUG; - - if ($XMLDEBUG) - echo "?$Tiefe$depth"; - - if (($depth -1) == $Tiefe) { - $Objekt->sub[$XMLpos[$Tiefe]]->data .= htmlentities(convertValues($Data), ENT_QUOTES); - - if ($XMLDEBUG) - echo "???" . $Objekt->sub[$XMLpos[$Tiefe]]->name . "|$Data|$Tiefe???<br />"; - } 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|" . "#-#<br />"; - } 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 (" <h1>could not open XML file \"$file\"</h1>"); - return -1; - } - } else { - echo (" <h1>XML file \"$file\" not exist</h1>"); - return -1; - } - - if ($XMLDEBUG) - echo "<pre>"; - 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 "</pre>"; - xml_parser_free($xml_parser); - return 0; -} - -/*#######################################################################################*/ -function getXMLsubPease($Sourse, $Name) { - foreach ($Sourse->sub as $key => $value) { - if ($value->name == $Name) { - return $value; - } - } - // die; -} - -/*#######################################################################################*/ -function getXMLsubData($Sourse, $Name) { - $XML = getXMLsubPease($Sourse, $Name); - return $XML->data; -} -?> |