All pastes #477759 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-08 20:49 UTC
rendered paste body
class XMLParse
{
	private $lastname;
	private $index=0;
	private $xml_parser;
	private $dataarray;
	
	public function __construct()
	{
		$this->xml_parser = xml_parser_create();
		xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, true);
		xml_set_element_handler($this->xml_parser, "$this->startElement", "$this->endElement");
		xml_set_character_data_handler($this->xml_parser, "$this->characterData");
		$this->dataarray=array();
	}
	public function startElement($parser, $name, $attrs)
	{
		$this->lastname=$name;
	}

	public function endElement($parser, $name)
	{
		if($name=="TITLE")
			$this->index++;
	}

	public function characterData($parser, $data)
	{
		$this->dataarray[$this->index][$this->lastname]=$data;
	}
	public function ReadAll($fp)
	{
		while ($data = fread($fp, 4096)) 
		{
			if (!xml_parse($this->xml_parser, $data, feof($fp))) 
			{
				return array();
			}
		}
		xml_parser_free($this->xml_parser);
		return $this->dataarray;
	}
}