XMLParser

path = $this->result;
		$this->index = 0;

		$xml_parser = xml_parser_create($encoding);
		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 && 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)."';");
	}
}
?>

'WebDevelop > PHP' 카테고리의 다른 글

랜덤 숫자 + 영문  (1) 2007.10.05
Class DB Connection  (0) 2007.10.05
PHP에서 자바 클래스 호출  (0) 2007.10.05
Return top