public static function readPreApproval($str_xml)
 {
     $parser = new PagSeguroXmlParser($str_xml);
     $data = $parser->getResult('preApproval');
     $preApproval = new PagSeguroPreApproval();
     // <transaction> <lastEventDate>
     if (isset($data["lastEventDate"])) {
         $preApproval->setLastEventDate($data["lastEventDate"]);
     }
     // <transaction> <date>
     if (isset($data["date"])) {
         $preApproval->setDate($data["date"]);
     }
     // <transaction> <code>
     if (isset($data["code"])) {
         $preApproval->setCode($data["code"]);
     }
     // <transaction> <reference>
     if (isset($data["reference"])) {
         $preApproval->setReference($data["reference"]);
     }
     // <transaction> <status>
     if (isset($data["status"])) {
         $preApproval->setStatus(new PagSeguroPreApprovalStatus($data["status"]));
     }
     if (isset($data["sender"])) {
         // <transaction> <sender>
         $sender = new PagSeguroSender();
         // <transaction> <sender> <name>
         if (isset($data["sender"]["name"])) {
             $sender->setName($data["sender"]["name"]);
         }
         // <transaction> <sender> <email>
         if (isset($data["sender"]["email"])) {
             $sender->setEmail($data["sender"]["email"]);
         }
         if (isset($data["sender"]["phone"])) {
             // <transaction> <sender> <phone>
             $phone = new PagSeguroPhone();
             // <transaction> <sender> <phone> <areaCode>
             if (isset($data["sender"]["phone"]["areaCode"])) {
                 $phone->setAreaCode($data["sender"]["phone"]["areaCode"]);
             }
             // <transaction> <sender> <phone> <number>
             if (isset($data["sender"]["phone"]["number"])) {
                 $phone->setNumber($data["sender"]["phone"]["number"]);
             }
             $sender->setPhone($phone);
         }
         // <transaction><sender><documents>
         if (isset($data["sender"]['documents']) && is_array($data["sender"]['documents'])) {
             $documents = $data["sender"]['documents'];
             if (count($documents) > 0) {
                 foreach ($documents as $document) {
                     $sender->addDocument($document['type'], $document['value']);
                 }
             }
         }
         $preApproval->setSender($sender);
     }
     return $preApproval;
 }