simplexml_load_file lädt nicht ganze XML-Datei (?)

happyeater

Grünschnabel
Hallo in die Runde,

ich möchte den Newsfeed der Ostthüringer Zeitung einlesen und weiterverarbeiten. Zum Beispiel diesen hier zur Politik (ich hoffe, das wird korrekt angezeigt, das Format der Adresse ist nämlich ziemlich abenteuerlich). Dazu verwende ich simplexml_load_file, erhalte aber seltsamerweise nicht den kompletten Feed zurück, sondern nur bis zum ersten Item (exklusive). Mit anderen Worten, der Code

Code:
if ( !($xml = simplexml_load_file( **Adresse** )) ) {
	echo "Problem";
}
print_r($xml);

ergibt folgende Ausgabe:

Code:
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [version] => 2.0
        )

    [channel] => SimpleXMLElement Object
        (
            [title] => SimpleXMLElement Object
                (
                )

            [description] => Queport RSS Feed
            [copyright] => Copyright 2010 QuePort
            [lastBuildDate] => SimpleXMLElement Object
                (
                )

            [pubDate] => SimpleXMLElement Object
                (
                )

            [generator] => Feed
            [image] => SimpleXMLElement Object
                (
                    [url] => SimpleXMLElement Object
                        (
                        )

                    [title] => Feed
                    [description] => Feed
                    [width] => 48
                    [height] => 48
                )

        )

)

Gerade die Items, die mich ja interessieren würden, fehlen komplett. Bei anderen Newsfeeds funktioniert alles, es liegt wohl am Format dieses Feeds der OTZ. Andererseits werden die vorhandenen Items angezeigt, wenn man die Seite einfach im IE oder Mozilla aufruft, also liegt es wohl auch irgendwie an meiner Verwendung von simplexml_load_file. Ich wäre sehr dankbar, wenn sich jemand den Feed mal ansehen könnte und herausfindet, weshalb nicht alles ausgelesen wird. Ich bin mit meinem Latein am Ende.

Viele Grüße
happyeater
 
Hi!

Hast Du schon mal probiert den Feed zuerst zu laden und dann mit simplexml zu parsen anstelle der Übergabe der URL an simplexml_load_file?

Gruß
Enum
 
Hallo Enum,

ich weiß nicht, ob das genau das ist, was Du meintest, aber ich habe es jetzt einmal so probiert:

Code:
$f = file($feeddatei);
$xml = simplexml_load_string(implode("\n",$f));

... und da werden die Items tatsächlich mit eingelesen und ausgegeben. Hoffentlich klappt das jetzt bei allen Feeds, bei denen die "alte" Methode erfolgreich war, auch so gut.

Nur mal so aus Neugier: Hast Du eine Ahnung, woran es gelegen haben könnte, dass es mit simplexml_load_file nicht funktioniert hat?

Vielen Dank jedenfalls, und viele Grüße
happyeater
 
Sorry, das kann ich nicht mit Sicherheit sagen. Ich kenn' zwar ein paar Möglichkeiten, aber das sind nur Vermutungen.
 
Zurück