如何使用PHP排序xpath

时间:2011-09-28 05:48:32

标签: php xpath

我在网站上搜索过,无法找到我问题的确切结果。

我需要搜索xml文件,并按日期降序排序输出。

<?xml version="1.0"?>
<entries>
  <entry>
    <date>1299565881</date>
    <action>made an action under category</action>
    <user>Admin</user>
  </entry>
  <entry>
    <date>1299566115</date>
    <action>Item deleted</action>
    <user>Admin</user>
  </entry>
</entries>

这是我的代码

<?php

$data = simplexml_load_file($filename);

if($to_date_int>$global_date)
    $op = $data->xpath('/entries/entry[date<='.$to_date_int.']');
else
    $op = $data->xpath('/entries/entry');

提前致谢..

1 个答案:

答案 0 :(得分:1)

由于$op将是匹配的entry元素的数组,因此您可以使用PHP的数组排序函数按其关联的date元素进行排序。

function sort_entries_by_date($a, $b) {
    return (int) $b->date - (int) $a->date;
}
usort($op, 'sort_entries_by_date');

(如果您使用的是PHP 5.3,则可以通过内联匿名函数放置指定的函数。)