Ich habe PHP seit vielen Jahren nicht mehr verwendet und versuche, RSS-Feeds von Tweets so zu manipulieren, dass der Name des Tweeters benötigt wird. Ich ziehe derzeit RSS-Feeds von TwitRSS und es funktioniert alles gut außer der Name des Hochtöners verwendet einen Namespace, so dass das Element Hochton-Name sagt. Ich habe viele Threads auf dieser Site darüber gesehen, wie der Namespace verwendet wird, und ich habe alle ohne Erfolg versucht.Wie ersetze ich Namespaces mit SimpleXML?
Im Moment sieht mein Code wie folgt aus:
$newsoutput = new SimpleXMLElement('http://twitrss.me/twitter_search_to_rss/?term=php', LIBXML_NOCDATA, true);
$newsoutput = json_decode(json_encode($newsoutput), TRUE);
foreach ($newsoutput['channel']['item'] as $item) {
echo $item['title']."<br>".$item['description']."<br>".$item['link']."<br>".$item['guid']."<br>".$item['pubDate']."<br>";
echo $item['author']."br";}
Das ist natürlich für alle gängigen Elemente gut funktioniert Echos aus zu sein, aber wenn ich versuche, jede Lösung den Namespace-Tag zu bekommen habe ich versucht, hat dazu geführt, Fehlermeldungen in der Schleife. Normalerweise hat es damit zu tun, dass das Kindelement null ist.
Jetzt möchte ich eine andere Lösung versuchen. Ich möchte eine Zeichenfolge ersetzen, die jedes Namespace-Element mit einem Nicht-Namespace-Element ändern würde. Idealerweise würde der resultierende RSS-Feed jedes Element durch ersetzen und dann normal wieder ausgeben.
Ich habe versucht, indem Sachen wie:
$newsoutput->str_replace("dc:creator","author","");
habe ich es vor der Schleife, weil ich, dass das Array von item-Elementen übernehmen würde in der SimpleXML Array geändert werden müßte, bevor Looping und echo'ing . Ich weiß ein Problem mit dem, was ich tue ist, dass PHP str_replace 3 Parameter erwartet und ich kann nur an zwei denken. Das Wort, das ich ersetzen möchte und was ich es ersetzen möchte. Was brauche ich noch? Ich denke auch, dass ich möglicherweise eine Schleife für das Ersetzen der Zeichenfolge ausführen muss, bevor Sie die Schleife für den neuen freien Namespace-Feed ausführen.
oops „Hochtöner name“ sollte durch den Tag mit dem Namensraum umgeben sein, aber es wurde gezupft – XCon065
'str_replace' ist eine globale Funktion. '-> str_replace' verwendet die Klassenmethode. Sie tun es natürlich falsch. –
oops, der Autor wurde von einem vorherigen String-Ersetzungs-Versuch da gelassen – XCon065