note 82963 modified in simplexml.examples by felipe

From: Date: Sat, 03 May 2008 17:08:30 +0000
Subject: note 82963 modified in simplexml.examples by felipe
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-139033@lists.php.net to get a copy of this message
<?php class QXML { ... protected function _toXML( $xmlArray, $elmName='graph', $elmCloseTag="", $level=0) { $xmlString = ""; if(is_array($xmlArray)){ $strXmlAttributes = ""; $key_xml = ""; $keysXmlArray = array_keys($xmlArray); $curLevel = $level + 1; if(in_array(self::attribute,$keysXmlArray)){ if(isset($xmlArray[self::attribute])){ if(is_array($xmlArray[self::attribute])){ foreach($xmlArray[self::attribute] as $xmlArrayKey => $xmlArrayValue) { $strXmlAttributes .= sprintf(' %s="%s"', $xmlArrayKey, addslashes($xmlArrayValue)); } } } unset($xmlArray[self::attribute]); } if(in_array(self::textNode,$keysXmlArray)){ if(isset($xmlArray[self::textNode])){ if($xmlArray[self::textNode]){ $key_xml = $xmlArray[self::textNode]; } if(strlen($ky_xml)){ $key_xml = sprintf("<![CDATA[%s]]>",$key_xml); } else { $key_xml = ""; } } unset($xmlArray[self::textNode]); } $keysXmlArray=array_keys($xmlArray); if($elmCloseTag){ $indent=str_repeat(" ",$level * 5); $xmlString .="\n".$indent. "<".$elmCloseTag.$strXmlAttributes.">". $key_xml; } if(is_array($xmlArray) && count($xmlArray)>0 && count($keysXmlArray)>0) { reset($xmlArray); foreach($keysXmlArray as $key){ $altKey = $altKeyXml = $xmlArray[$key]; $check = false; foreach(array_keys($altKeyXml) as $j=>$p){ if(is_numeric($j)){ $check=true; $xmlString.= $this->_toXML( $altKeyXml[$j], "", $key, $curLevel ); unset($altKeyXml[$j]); } } if($check){ $altKey = $altKeyXml; } if($altKey){ $xmlString .= $this->_toXML($altKey,"",$key,$curLevel); } } } if($elmCloseTag){ $xmlString.= (count($xmlArray)>0?"\n".$indent:""). "</".$elmCloseTag.">"; } } if($elmName) { $xmlString = "<?xml version='1.0' encoding='UTF-8'?>\n$xmlString\n"; } return $xmlString; } ... } ?> --was-- Missing part because of length restrictions <?php class QXML { ... protected function _toXML( $xmlArray, $elmName='graph', $elmCloseTag="", $level=0) { $xmlString = ""; if(is_array($xmlArray)){ $strXmlAttributes = ""; $key_xml = ""; $keysXmlArray = array_keys($xmlArray); $curLevel = $level + 1; if(in_array(self::attribute,$keysXmlArray)){ if(isset($xmlArray[self::attribute])){ if(is_array($xmlArray[self::attribute])){ foreach($xmlArray[self::attribute] as $xmlArrayKey => $xmlArrayValue) { $strXmlAttributes .= sprintf(' %s="%s"', $xmlArrayKey, addslashes($xmlArrayValue)); } } } unset($xmlArray[self::attribute]); } if(in_array(self::textNode,$keysXmlArray)){ if(isset($xmlArray[self::textNode])){ if($xmlArray[self::textNode]){ $key_xml = $xmlArray[self::textNode]; } if(strlen($ky_xml)){ $key_xml = sprintf("<![CDATA[%s]]>",$key_xml); } else { $key_xml = ""; } } unset($xmlArray[self::textNode]); } $keysXmlArray=array_keys($xmlArray); if($elmCloseTag){ $indent=str_repeat(" ",$level * 5); $xmlString .="\n".$indent. "<".$elmCloseTag.$strXmlAttributes.">". $key_xml; } if(is_array($xmlArray) && count($xmlArray)>0 && count($keysXmlArray)>0) { reset($xmlArray); foreach($keysXmlArray as $key){ $altKey = $altKeyXml = $xmlArray[$key]; $check = false; foreach(array_keys($altKeyXml) as $j=>$p){ if(is_numeric($j)){ $check=true; $xmlString.= $this->_toXML( $altKeyXml[$j], "", $key, $curLevel ); unset($altKeyXml[$j]); } } if($check){ $altKey = $altKeyXml; } if($altKey){ $xmlString .= $this->_toXML($altKey,"",$key,$curLevel); } } } if($elmCloseTag){ $xmlString.= (count($xmlArray)>0?"\n".$indent:""). "</".$elmCloseTag.">"; } } if($elmName) { $xmlString = "<?xml version='1.0' encoding='UTF-8'?>\n$xmlString\n"; } return $xmlString; } ... } ?> http://php.net/manual/en/simplexml.examples.php

« previous php.notes (#139033) next »