<?php
function getValue($value,$CutXml)
{
		$key = $value;
		if (strpos($value, "-")) $value = substr($value, 0, strpos($value, "-"));
		$str1 = "<".$value;
		$str2 = "</".$value;
		$start_pos = strpos($CutXml, $str1);
		if ($start_pos > 0){
			$start_pos += strlen($str1);
			$CutXml = substr($CutXml, $start_pos);
			$end_pos = strpos($CutXml, $str2);
			$resValue = substr($CutXml, strpos($CutXml,">")+1, $end_pos-strpos($CutXml,">")-1);
		}
		return $resValue;
}

function parseMol($mvalues,$mretype=0)
{
	if($mvalues[0]["type"]=="open")
	{
		for ($i=1; $i < count($mvalues); $i++)
		{
			$key=$mvalues[$i]["tag"];
			if(!$mretype)$mol[$key][] = $mvalues[$i]["value"];
			else{
				$arr["value"] = $mvalues[$i]["value"];
				if(isset($mvalues[$i]["attributes"]))
					$arr["attributes"] = $mvalues[$i]["attributes"];
				$mol[$key][] = $arr;
			}
		}
	}
	return $mol;
}

function XMLtoArray($values,$tags,$item,$parsetype=0)
{
	foreach ($tags as $key=>$val)
	{
		if($key == $item)
		{
			$molranges = $val;
			$offset = $molranges[0];
			$len = $molranges[1] - $offset;
			$data=parseMol(array_slice($values, $offset, $len),$parsetype);
		 }
	}
	return $data;
}

function XMLgetValue($values,$tags,$item)
{
		foreach ($tags as $key=>$molranges)
		{
			if($key == $item)
			{
				for($i=0;$i<$num;$i++)
				$data[]=$values[$molranges[$i]]["value"];
			}
		}
		return $data;
}

function toArray($xml,$content="response"){
	$parser = xml_parser_create();
	xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
	xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
	xml_parse_into_struct($parser,$xml,$values,$tags);
	xml_parser_free($parser);
	$dbxml=XMLtoArray($values,$tags,$content);
	return $dbxml;
}
?>