\n"; foreach($this as $name => $value) { if ($noshow && substr($name, 0, 1) == '_') continue; if (!is_array($this->$name) && !is_object($this->$name) && !is_bool($this->$name)) { $xml .= str_repeat(chr(9), $t + 1)."<$name>$value\n"; } elseif (is_bool($this->$name)) { if ($value === true) $xml .= str_repeat(chr(9), $t + 1)."<$name>true\n"; else $xml .= str_repeat(chr(9), $t + 1)."<$name>false\n"; } elseif (is_object($this->$name) && method_exists($this->$name, 'getXML')) { $xml .= $this->$name->getXml($t + 1); } elseif (is_array($this->$name)) { $xml .= str_repeat(chr(9), $t + 1)."<$name>\n"; $xml .= self::getXMLArray($this->$name, $t + 1, $noshow); $xml .= str_repeat(chr(9), $t + 1)."\n"; } // else : no getXML method available } $xml .= str_repeat(chr(9), $t)."\n"; return $xml; } /** * Cré le flux XML d'un tableau * * @param array $array * @param int $t * @return string */ protected function getXMLArray($array, $t = 0, $noshow = true) { $xml = ''; foreach($array as $name => $value) { if (substr($name, 0, 1) == '_') continue; if (!is_array($array[$name]) && !is_object($array[$name]) && !is_bool($array[$name])) { $xml .= str_repeat(chr(9), $t + 1)."<_aKey_$name>$value\n"; } elseif (is_bool($array[$name])) { if ($value === true) $xml .= str_repeat(chr(9), $t + 1)."<$name>true\n"; else $xml .= str_repeat(chr(9), $t + 1)."<$name>false\n"; } elseif (is_object($array[$name]) && method_exists($array[$name], 'getXML')) { $xml .= $array[$name]->getXml($t + 1); } elseif (is_array($array[$name])){ $xml .= str_repeat(chr(9), $t + 1)."<$name>\n"; $xml .= self::getXMLArray($array[$name], $t + 1, $noshow); $xml .= str_repeat(chr(9), $t + 1)."\n"; } } return $xml; } }