Blame | Letzte Änderung | Log anzeigen | RSS feed
<?/* ###################################################################################*//* ## Super Duper XMLParser ##*//* ###################################################################################*/class XMLParser {var $path;var $result;function XMLParser($encoding, $data) {$this->path = "\$this->result";$this->index = 0;$xml_parser = xml_parser_create($encoding);xml_parser_set_option( $xml_parser, XML_OPTION_CASE_FOLDING, FALSE);xml_parser_set_option( $xml_parser, XML_OPTION_SKIP_WHITE, TRUE);xml_set_object($xml_parser, &$this);xml_set_element_handler($xml_parser, 'startElement', 'endElement');xml_set_character_data_handler($xml_parser, 'characterData');xml_parse($xml_parser, $data, true);xml_parser_free($xml_parser);}function startElement($parser, $tag, $attributeList) {eval("\$vars = get_object_vars(".$this->path.");");$this->path .= "->".$tag;if ($vars and array_key_exists($tag, $vars)) {eval("\$data = ".$this->path.";");if (is_array($data)) {$index = sizeof($data);$this->path .= "[".$index."]";} else if (is_object($data)) {eval($this->path." = array(".$this->path.");");$this->path .= "[1]";}}eval($this->path." = null;");foreach($attributeList as $name => $value)eval($this->path."->".$name. " = '".XMLParser::cleanString($value)."';");}function endElement($parser, $tag) {$this->path = substr($this->path, 0, strrpos($this->path, "->"));}function characterData($parser, $data) {eval($this->path." = '".trim($data)."';");}}?>