Я часто вижу запросы на сортировку элементов XML, обычно основанные на результате запроса XPath.
Для этой цели я написал метод sortedXPath () для SimpleDOM . Он имеет ту же сигнатуру, что и array_multisort () , за исключением того, что первый аргумент является выражением XPath и вместо ключей массива использует выражения XPath. Например, вот как получить все элементы <gig/>
, отсортированные по их атрибуту id
:
include 'SimpleDOM.php';
$gigs = simpledom_load_string(
'<gigs>
<gig id="16">
<date>Fri. 23rd Apr</date>
</gig>
<gig id="15">
<date>Fri. 16th Apr</date>
</gig>
</gigs>'
);
foreach ($gigs->sortedXPath('//gig', '@id') as $gig)
{
echo 'gig id ', $gig['id'], ' - date: ', $gig->date, "\n";
}