it-swarm.com.de

Speichern einer XML-Antwort (vorübergehend)?

Ich habe nicht viel mit XML gearbeitet, also stoße ich ein bisschen an die Wand:

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

    return $output;
}

Abrufen oder Festlegen des Übergangs

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

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

    return $transient;
}

Ich kann die Daten leicht anzeigen, aber ein Aufruf von einem gespeicherten Übergang führt dazu, dass dieser Fehler angezeigt wird:

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

Ich bin mir nicht sicher, welchen zusätzlichen Schritt ich ausführen muss, um die Daten korrekt zu speichern.

Danke vielmals!

Noel

2
Noel Tock

Laut zu diesem Ticket :

Objektumbruch-Bibliotheksstrukturen von Drittanbietern können nicht serialisiert werden. Sie müssen die XML-Datei (in eine Zeichenfolge) serialisieren und in der Sitzung speichern und die XML-Datei beim Wiederherstellen aus der Sitzung neu laden

Wenn Sie ein Objekt vorübergehend speichern, wird es serialisiert und nicht alle Objekte können dies korrekt.

Speichern Sie stattdessen XML-Textdaten in Transienten.

5
Rarst