/**
  * Function converts xml to array
  * @access public
  * @param XMLReader $xml
  * @return array $tree
  */
 public static function read($xml)
 {
     $tree = null;
     while ($xml->read()) {
         if ($xml->nodeType == XMLReader::END_ELEMENT) {
             return $tree;
         } else {
             if ($xml->nodeType == XMLReader::ELEMENT) {
                 if (!$xml->isEmptyElement) {
                     $tree[$xml->name] = OpenPayUBase::read($xml);
                 }
             } else {
                 if ($xml->nodeType == XMLReader::TEXT) {
                     $tree = $xml->value;
                 }
             }
         }
     }
     return $tree;
 }
 /**
  * Function converts Xml string to array 
  * @access public
  * @param string $data
  * @return array
  */
 public static function parseOpenPayUDocument($xmldata)
 {
     $xml = new XMLReader();
     $xml->XML($xmldata);
     $assoc = OpenPayUBase::read($xml);
     return $assoc;
 }