使用PHP反转XML的顺序

Rya*_*yan 4 php xml

我正在使用PHP从XML文件输出数据.这是违反时间顺序的,我想反过来.这可能用PHP吗?如果是这样,怎么样?

这是我的页面和代码:

    $file = 'http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml';
    $xml = simplexml_load_file($file);

        foreach ($xml as $event_date) {
        if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
        { 
            echo '<li>';
                echo '<h3>', $event_date->event['vn'], ' vs ', $event_date->event['hn'], '</h3>';
                echo '<p><strong>', $event_date->event['vs'], ' - ', $event_date->event['hs'], '</strong></p>';
                echo '<p>', date('F j, Y', strtotime($event_date['date'])), '</p>';
            echo '</li>';   
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Eri*_*dek 6

正如第一个答案所指出的,这对于大型XML文档来说可能不是一个好主意.PHP 5.1.2及更高版本的最简单和最便携的代码可能是使用SimpleXML.它可能已经内置到早期的PHP版本中,但它是5.1.2之后的标准版本.

<?php

$file = 'http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml';
$xml = simplexml_load_file($file);

if ($xml === false) {
  echo "Couldn't load file\n";
  exit (1);
}

$xmlArray = array();

foreach ($xml as $event_date) $xmlArray[] = $event_date;

$xmlArray = array_reverse($xmlArray);

foreach ($xmlArray as $event_date) {
    if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
    {
            echo '<li>';
                echo '<h3>', $event_date->event['vn'], ' vs ', $event_date->event['hn'], '</h3>';
                echo '<p><strong>', $event_date->event['vs'], ' - ', $event_date->event['hs'], '</strong></p>';
                echo '<p>', $event_date['date'], '</p>';
                echo '<p>', $event_date->event['local_time'], '</p>';
            echo '</li>';
    }
}


?>
Run Code Online (Sandbox Code Playgroud)