Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/07/2012, 06:10
Avatar de cluster28
cluster28
 
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Xml a partir de array

Yo tengo hecho esto. La estructura del array de datos tenía algo particular que no recuerdo bien lo que era. Te he puesto unos ejemplos que funcionan.

Código PHP:
function CrearXml($array_datos)
{
    
$XmlWriter = new XmlWriter();
    
$XmlWriter->openMemory();
    
$XmlWriter->startDocument('1.0''UTF-8');
    
$XmlWriter->startElement('roomstaycandidate');
    
Write($XmlWriter$array_datos);
    
$XmlWriter->endElement();
    return 
$XmlWriter->outputMemory(true);
}

function 
Write(XMLWriter $XmlWriter$array_datos)
{
    foreach(
$array_datos as $key=>$value)
    {
        if(
is_array($value))
        {
            if(!
is_int($key)){
                
$XmlWriter->startElement($key);
            }
            
Write($XmlWriter$value);
            if(!
is_int($key)){
                
$XmlWriter->endElement();
            }
            continue;
        }

        
$XmlWriter->writeElement($key$value);
    }
}

$array_datos = array("a"=>
                        array(
"b"
                                
=>"c"));

echo 
htmlentities(CrearXml($array_datos));

$array_datos = array("a"=>array("b"=>"c",
                                
"d"=>"e"));

echo 
htmlentities(CrearXml($array_datos));

$array_datos = array ('a' =>
                            array (
'b' =>
                                        array (
=>array ('c' =>array ('d' => 'e')),
                                                
=> array ('f' => 'g',
                                                          
'h' => 'i',)
                                                    )
                                                  )
                                                );


echo 
htmlentities(CrearXml($array_datos));