note 82962 deleted from simplexml.examples by felipe

From: Date: Sat, 03 May 2008 17:08:05 +0000
Subject: note 82962 deleted from simplexml.examples by felipe
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-139032@lists.php.net to get a copy of this message
Note Submitter: dipl dot paed dot thomas dot schaefer at web dot de ---- <?php class QXML { const attribute = "@attributes"; const textNode = "@textNode"; protected $xml; public function asObject(){ if(strlen($this->asXML())){ return simplexml_load_string($this->asXml()); } else { return false; } } public function setXml($xml){ $this->xml = $xml; } public function asXML(){ return $this->xml; } public function toArray($xml) { $results = Array(); foreach($xml->children() as $key => $object) { $recObj = $this->toArray($object); foreach( $object->attributes() as $ak => $av ) { $recObj[self::attribute][$ak] = (string)$av; } if(!$recObj[self::attribute]){ $recObj[self::attribute] = ""; } if(!$recObj[self::textNode]){ $recObj[self::textNode] = trim((string)$object); } if (!in_array($key,array_keys($results))) { $results[$key] = $recObj; } elseif (@in_array(0,@array_keys($results[$key]))) { if(count($results[$key])==2){ if($results[$key][self::attribute] || $results[$key][self::textNode] ) { $tmp=Array(); $tmp[self::attribute] = $results[$key][self::attribute]; $tmp[self::textNode] = $results[$key][self::textNode]; unset($results[$key][self::attribute]); unset($results[$key][self::textNode]); $results[$key][0]=$tmp; unset($tmp); } } if(count(array_diff_key($results[$key],$recObj))==0 && count($results[$key])>0) { $tmp=$results[$key]; unset($results[$key]); $results[$key][]=$tmp; } $results[$key][] = $recObj; } else { $results[$key] = array($results[$key]); $results[$key][] = $recObj; } } return $results; } public function toXML( $xmlArray, $elmName='graph', $elmCloseTag="", $level=0) { $this->setXml( $this->_toXML( $xmlArray, $elmName, $elmCloseTag, $level) ); } } ?>

« previous php.notes (#139032) next »