function xml_encode($valor) { return toba_xml_tablas::encode($valor); }
static function array_a_payload($array, $nivel = 0, $clave_padre = '') { $salida = ''; $tab = str_repeat("\t", $nivel); foreach ($array as $clave => $valor) { $empieza_con_numero = strlen($clave) > 0 && ctype_digit(substr($clave, 0, 1)); if ($empieza_con_numero && is_string($clave)) { throw new toba_error_def("El arreglo contiene una clave asociativa ({$clave}) que comienza con un número, XML no acepta tags que comienzen con numeros"); } if ($empieza_con_numero) { $clave = self::id_fila_generica . $clave_padre; //El xml no puede tener claves numericas, se define una clave unica para los posicionales } $clave = toba_xml_tablas::encode($clave); $salida .= "{$tab}<{$clave}>"; if (is_array($valor)) { $salida .= "\n" . self::array_a_payload($valor, $nivel + 1, $clave); $salida .= "{$tab}</{$clave}>\n"; } else { $valor = toba_xml_tablas::encode($valor); $salida .= $valor; $salida .= "</{$clave}>\n"; } } return $salida; }