All pastes #477826 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-08 21:20 UTC
rendered paste body
function startElement($parser, $name, $attrs)
{
	XMLParse::$lastname=$name;
}
function endElement($parser, $name)
{
	if(name=="TITLE")
		XMLParse::$index++;
}
function characterData($parser, $data)
{
	XMLParse::$dataarray[XMLParse::$index][XMLParse::$lastname]=$data;
}
class XMLParse
{
	static public $lastname;
	static public $index=0;
	private $xml_parser;
	static public $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, "startElement", "endElement");
		xml_set_character_data_handler($this->xml_parser, "characterData");
		$this->dataarray=array();
	}
	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 XMLParse::$dataarray;
	}
}