• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Simplexml: Tags mit Doppelpunkt auslesen

paoloposo

Mitglied
Hallo,

welche simplexml-Struktur muss ich verwenden, um 'lBmnXFooO_4' (das ist die Video-Id) aus dieser Datei zu extrahieren? (Befindet sich im ersten entry-Tag, fast ganz unten)

Will ich zum Beispiel den Titel des ersten Videos herausfinden, so schreibe ich:
PHP:
print $xml_file->entry[0]->title;

Im Tag der Video-Id (<yt:videoid>) und in den Eltern-Tags befinden sich aber Doppelpunkte. Somit kann simplexml sie nicht lesen / verarbeiten und wirft einen Fehler.
 
Auch damit kann SimpleXML umgehen. Hierbei handelt es sich um Namespaces. Wie du mit SimpleXML auf Namespaces zugreifen kannst, kannst du hier nachlesen.

Hättest im übrigen auch selbst googlen können, aber das scheint die Jugend ja heutzutage nicht für notwendig zu halten.
 
Danke für den Link, aber ich bekomme es trotzdem nicht hin, diese Information zu entnehmen.
Ein Beispielcode wäre ganz hilfreich, da ich noch nicht tief genug drin bin in der Materie.

Betreffs deines zweiten Absatzes: Natürlich habe ich gegooglet und ich habe auch etwas gefunden(PHP - SimpleXML). Aber es funktioniert halt nicht.
 
Schau dir mal das letzte Code-Beispiel auf der von mir verlinkten Seite an, da findest den gewünschten Beispielcode.
 
Also, das hier funktioniert jetzt:
PHP:
$namespaces = $xml_file->getNameSpaces(true);
$id = $xml_file->entry[0]->children($namespaces['media'])->group->children($namespaces['yt'])->videoid;
 
Und gefunden wurde dieses Beispiel übrigens gleich an erster Stelle auf der ersten Google-Ergebnisseite, mit diesen 3 Suchbegriffen: php simplexml namespace ;o)
 
Hab ich auch gemerkt, als ich genau danach gesucht habe. Aber ich glaube du hättest es auch nicht gefunden, wenn du nicht gewusst hättest wonach du suchen sollst.
 
In deinem Fall ist die Suche nach der Lösung recht simple:

1. Suche nach: SimpleXML Doppelpunkt
> Ergebnis: Tags mit Doppelpunkt sind "Namespaces"
2. Suche nach SimpleXML Namespaces
> Ergebnis: siehe oben

:o)

Man muss sich nur etwas bemühen ;)
 
Zurück
Oben