/** * @see PCStorage::load() */ public function load($uri) { try { $this->checkURI($uri); if(!file_exists($uri)) { //Do not fail, if file doesn't exist. return; } if(!@$this->dom->load($uri)) { throw new Exception("Failed to parse $uri!"); } $xpath = new DOMXpath($this->dom); foreach($xpath->query('/klarna/estore') as $estore) { $eid = $estore->getAttribute('id'); foreach($xpath->query('pclass', $estore) as $node) { $pclass = new KlarnaPClass(); $pclass->setId($node->getAttribute('pid')); $pclass->setType($node->getAttribute('type')); $pclass->setEid($eid); $pclass->setDescription($xpath->query('description', $node)->item(0)->textContent); $pclass->setMonths($xpath->query('months', $node)->item(0)->textContent); $pclass->setStartFee($xpath->query('startfee', $node)->item(0)->textContent); $pclass->setInvoiceFee($xpath->query('invoicefee', $node)->item(0)->textContent); $pclass->setInterestRate($xpath->query('interestrate', $node)->item(0)->textContent); $pclass->setMinAmount($xpath->query('minamount', $node)->item(0)->textContent); $pclass->setCountry($xpath->query('country', $node)->item(0)->textContent); $pclass->setExpire($xpath->query('expire', $node)->item(0)->textContent); $this->addPClass($pclass); } } } catch(Exception $e) { throw new KlarnaException("Error in " . __METHOD__ . ": " .$e->getMessage()); } }