<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class extends the Kohana XML * * @package OSB * @category Modifications * @author Deon George * @copyright (c) 2009-2013 Open Source Billing * @license http://dev.osbill.net/license.html */ class XML extends XML_Core { /** * Collapse an XML object into a simple array */ public function collapse(XML $xml=NULL) { $result = array(); if (is_null($xml)) $xml = $this; foreach ($xml->as_array() as $j=>$k) { $v = $xml->$j->value(); if (count($k) > 1) { foreach ($xml->get($j,1) as $k) if (isset($k['name'][0])) $result[$j][$k['name'][0]] = (isset($k['value'][0]) ? $k['value'][0] : ''); else $result[$j][] = $k; } elseif (! is_null($v)) $result[$j] = $v; else { $result[$j] = $this->collapse($xml->$j); } } if (array_key_exists('name',$result) AND array_key_exists('value',$result)) $result = array($result['name']=>$result['value']); return $result; } } ?>