Я попытался получить XML-файл для сортировки и не повезло. Через полтора дня мне нужна помощь эксперта. Благодарю.
Мой XML-файл (сокращен для примера):
<?xml version="1.0" encoding="iso-8859-1"?> <deadlines> <deadline> <date>2010-06-01</date> <text>Application for Summer Due</text> </deadline> <deadline> <date>2010-07-01</date> <text>Application for Fall Due</text> </deadline> <deadline> <date>2010-07-31</date> <text>Summer Bill Due</text> </deadline> </deadlines>
Мой PHP:
<?php $xml = simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/feeds/deadlines.xml'); // start THIS WORKS echo'<pre>'; foreach($xml as $deadline) echo <<<EOF Date: {$deadline->date} Text: {$deadline->text} EOF; echo'</pre>'; // end THIS WORKS ?>
У кого-нибудь есть простое PHP-решение для сортировки XML-файла в «дате» перед эхом на экран?
благодаря
Ладно, извините за то, что обошел дома раньше – для ясности я добавил другой ответ, но используя технику проксирования сортировки, с которой я связан.
function xsort(&$nodes, $child_name, $order=SORT_ASC) { $sort_proxy = array(); foreach ($nodes as $k => $node) { $sort_proxy[$k] = (string) $node->$child_name; } array_multisort($sort_proxy, $order, $nodes); } $structure = '<?xml version="1.0" encoding="utf-8" ?> <deadlines> <deadline> <date>2010-06-01</date> <text>Application for Summer Due</text> </deadline> <deadline> <date>2010-07-01</date> <text>Application for Fall Due</text> </deadline> <deadline> <date>2010-07-31</date> <text>Summer Bill Due</text> </deadline> </deadlines>'; $xml = simplexml_load_string($structure); $nodes = $xml->xpath('/deadlines/deadline'); // Sort by date, descending xsort($nodes, 'date', SORT_DESC); var_dump($nodes);