php как мне получить дату самого старого элемента в RSS-канале - PullRequest
2 голосов
/ 10 апреля 2010

с использованием simplexml для разбора канала, но я хочу получить дату самого старого элемента в канале. кто нибудь знает как это сделать? Спасибо

$ rss = simplexml_load_file ("http://search.twitter.com/search.atom?lang=en&q=foobar&rpp=100&page=1");

Ответы [ 2 ]

1 голос
/ 10 апреля 2010
  1. Сначала получите все элементы из RSS-канала и сохраните их в массиве, например, this .

  2. Теперь сортируем массив по дате .

  3. Получите первый / последний результат в зависимости от вашего порядка сортировки.

0 голосов
/ 10 апреля 2010

Если вы просто хотите получить последний <entry> элемент (в document-order ), вы можете использовать SimpleXMLElement :: xpath () и функцию last ()
http://www.w3.org/TR/xpath/ говорит:

child :: para [position () = last ()] выбирает последнего para-потомка контекстного узла

, например

$url = "http://search.twitter.com/search.atom?lang=en&q=foobar&rpp=100&page=1"; 
$feed = simplexml_load_file($url);
$feed->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom');

$entry = $feed->xpath('//atom:entry[position()=last()]');
if ( isset($entry[0]) ) {
  $entry = $entry[0];
}
else {
  die('not found');
}
var_dump($entry);

[position()=last()] можно сократить до [last()]

Если самая старая запись не является последней в порядке документов, вам понадобится что-то еще.

...