本文介紹了如何對多維 XML 文件進行排序?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我試圖對一個 XML 文件進行排序,但沒有成功.一天半后,我需要專家的幫助.謝謝.
我的 XML 文件(示例中的縮寫):
<截止日期><截止日期><日期>2010-06-01</日期><text>夏季到期申請</text></截止日期><截止日期><日期>2010-07-01</日期><text>秋季到期申請</text></截止日期><截止日期><日期>2010-07-31</日期><text>夏季賬單到期</text></截止日期></截止日期>
我的 PHP:
';foreach($xml as $deadline) echo <<<EOF日期:{$deadline->date}文本:{$deadline->text}EOF;echo'</pre>';//結束這項工作?>
有沒有人有一個簡單的 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" ?><截止日期><截止日期><日期>2010-06-01</日期><text>夏季到期申請</text></截止日期><截止日期><日期>2010-07-01</日期><text>秋季到期申請</text></截止日期><截止日期><日期>2010-07-31</日期><text>夏季賬單到期</text></截止日期></deadlines>';$xml = simplexml_load_string($structure);$nodes = $xml->xpath('/deadlines/deadline');//按日期排序,降序xsort($nodes, 'date', SORT_DESC);var_dump($nodes);
I have tried to get an XML file to sort and have had no luck. After a day and a-half, I need some help from an expert. Thanks.
My XML File (shortened for the example):
<?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>
My 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
?>
Does anyone have a simple PHP solution to sort the XML file on "date" prior to the echo to screen?
Thanks
解決方案
Okay, sorry for going around the houses before - I've added a different answer for clarity but using the sort proxying technique I linked to.
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);
這篇關于如何對多維 XML 文件進行排序?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!