¿Almacenar una respuesta XML (Transitoria)?

2

No he trabajado mucho con XML, así que estoy golpeando un poco la pared:

function getapi() 
{
    $api_response = wp_remote_get( "http://example.com/getXML" );
    $data         = wp_remote_retrieve_body( $api_response );
    $output       = new SimpleXMLElement ($data );

    return $output;
}

Obtener o configurar el Transitorio

function transient()
{ 
    $transient = get_transient( 'transient_value' );

    if ( ! $transient ) {
        $transient = getapi();
        set_transient( 'transient_value', $transient, 180 );
    }

    return $transient;
}

Puedo mostrar los datos fácilmente, pero recuperarlos desde un transitorio almacenado hace que se muestre este error:

Node no longer exists in C:\xampplite\htdocs\...

No estoy seguro de cuál es el paso adicional que debo realizar para almacenar los datos correctamente.

¡Muchas gracias!

Noel

    
pregunta Noel Tock 06.07.2011 - 17:52

1 respuesta

5

Según para este ticket :

  

No se puede serializar el objeto que envuelve las estructuras de la biblioteca de terceros. Debe   serialice el xml (a una cadena) y guárdelo para la sesión y vuelva a cargar el   xml al restaurar desde la sesión

Cuando almacenas un objeto en transitorio, se serializa y no todos los objetos son capaces de hacerlo correctamente.

Almacena datos XML textuales en lugar transitorio.

    
respondido por el Rarst 06.07.2011 - 22:57

Lea otras preguntas en las etiquetas