Я не использовал PHP в течение многих лет, и я пытаюсь манипулировать RSS-каналами твитов таким образом, чтобы требовалось имя твитера. Я в настоящее время вытаскиваю RSS-каналы из TwitRSS, и все работает отлично, за исключением того, что имя твитера использует пространство имен, поэтому элемент говорит имя твитера. Я видел много потоков на этом сайте о том, как использовать пространство имен, и я пробовал все из них без успеха.Как заменить пространства имен на SimpleXML?
Прямо сейчас мой код выглядит следующим образом:
$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";}
Это, конечно, хорошо работает для всех нормальных элементов, являющихся эха при, но всякий раз, когда я пытаюсь получить пространство имен тега каждое решение я пытался привело сообщения об ошибках в цикле. Обычно это связано с тем, что дочерний элемент имеет значение null.
Я хотел бы попробовать другое решение. Я хотел бы сделать замену строки, которая изменила бы каждый элемент пространства имен с помощью элемента, отличного от пространства имен. В идеале результирующий RSS-канал будет иметь каждый элемент, который был заменен, а затем выходил бы нормально.
Я пытался добавить такие вещи, как:
$newsoutput->str_replace("dc:creator","author","");
Я добавил его перед циклом, потому что я хотел бы предположить, что массив элементов элементов должен быть изменен в массиве SimpleXML перед циклом и echo'ing , Я знаю, что одна проблема с тем, что я делаю, это то, что php str_replace ожидает 3 параметра, и я могу думать только о двух. Слово, которое я хочу заменить, и что я хочу заменить. Что еще мне нужно? Я также думаю, что мне, возможно, придется запустить цикл для замены строки перед запуском цикла для нового бесплатного фида пространства имен.
упс, «название твитер» должны быть окружены тегом с пространством имен, но он получил раздели – XCon065
'str_replace' является глобальной функцией. '-> str_replace' использует метод класса. Вы obvioulsy делать это неправильно. –
oops, автор остался там с предыдущей попытки заменить строку – XCon065