2010-11-14 106 views
1

我正在使用SimpleDom库并需要有关sortedxpath函数的帮助。 这里的XML如何使用SimpleDom sortedxpath对多个属性上的XML节点进行排序?

<cal> 
<entry entry_id="1"> 
    <entry_date year="1980" month="10" day="12" /> 
    <entry_title>John Bday</entry_title> 
</entry> 
<entry entry_id="2"> 
    <entry_date year="1980" month="10" day="10" /> 
    <entry_title>Peter Bday</entry_title> 
</entry> 
<entry entry_id="3"> 
    <entry_date year="1980" month="10" day="16" /> 
    <entry_title>Allan Bday</entry_title> 
</entry> 
</cal> 

我想根据“年”,“月”和“天”的价值观所有的“项目”节点进行排序“ENTRY_DATE”节点的属性,所有在倒序(最近最上面)。所以在上面的例子中,我想最后的顺序为:

entry #3 
entry #1 
entry #2 

这里的PHP我现在有这不工作(没有输出):

$xml = simpledom_load_file("data.xml"); 
foreach ($xml->sortedXPath('entry', 'entry_date_start[@year]', SORT_DESC) as $i => $item) 
{ 
    echo($item); 
} 

任何帮助欣然赞赏。谢谢!

回答

1

终于找到了正确的语法,通过试错:

foreach ($xml->sortedXPath('entry', 'entry_date/@year', SORT_DESC, 'entry_date/@month', SORT_DESC, 'entry_date/@day', SORT_DESC) as $i => $item) 
{ 
    // do stuff 
} 

我希望这可以帮助别人。谢谢阅读。