Zugriff auf SimpleXML-Objects

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zugriff auf SimpleXML-Objects

    Hallo zusammen,

    ich arbeite gerade mit einem Web Service, der mir als erstes ein Suchergebnis in einem stdClass Object zurückgibt.

    Dieses wird in $result gespeichert.

    Nun wird das xml-Item des Objekts in der foreach-Schleife angesprochen, dekodiert (ist notwendig) und in $xml_str gespeichert.

    print_r($xml_str) gibt mir den im Zitat stehenden Inhalt zurück ... sowie ich es wollte.

    Das Problem ist jetzt - ich möchte die Ausgabe entsprechend formatieren und wollte die einzelnen Objekte mit z.B. echo "size: " .$xml->size. "\n"; ansprechen. Leider verweigert man mir die Ausgabe.

    Laut google und seinen Ergebnissen müsste der Code so richtig sein, um die einzelnen Elemente anzusprechen. Aber ich denke mal, ich hab da irgendwo einen Fehler drin.

    Wer kann mir weiterhelfen?

    PHP-Code:
    ...
    $result $client->search($session$nquery$minLat$minLon$maxLat$maxLon$offset$count);

    foreach(
    $result->results as $item)
    {
        
    $xml_str simplexml_load_string(base64_decode($item->xml));
        
    //print_r($xml_str);
        
        
    echo "size: " .$xml_str->size"\n";

    SimpleXMLElement Object ( [citation] => SimpleXMLElement Object ( [author] => König-Langlo, G [date] => 2005 [title] => Meteorological observations during POLARSTERN cruise ANT-XXII/2 [URI] => doi:10.1594/PANGAEA.267682 [publicationDateTime] => 2005-04-28T08:33:00 ) [size] => 11537 data points [extent] => SimpleXMLElement Object ( [geographic] => usw.

    ...sind Forschungsdaten bitte nicht wundern )
    MfG
    Benny
    Zuletzt geändert von Scheuch; 31.05.2005, 15:09.
    Beste Grüße,
    Scheuch

  • #2
    Nach zwei Nervenzusammenbrüchen gibt er endlich das aus was er soll.

    Lösung: Die XML-Datei enthielt Namespaces, welche mit var_dump und Co. nicht mit angezeigt wurden. Betrachtet man sich das Ganze mit
    PHP-Code:
    $xml_str $xml->asXML();
    print_r($xml_str); 
    und dann im Browser den Quelltext, findet man sie hingegen. Also schnell die dort angegebene xmlns:xy-Adresse angegeben mittels z.B.
    PHP-Code:
    $xml_str $xml->children('http://www.abc.de/MetaData'); 
    Kleine Ursache, große Wirkung.
    Kann man sich einen ganzen Tag mit versauen
    Beste Grüße,
    Scheuch

    Kommentar

    Lädt...
    X