我有一个带有图像/信息的动态横幅,保存在XML文件中。我正在为用户添加选项以重新排列他们喜欢的图像(Jquery可排序),一旦我获得新订单(它计算了id属性),我想重新排列而不必复制每个节点的信息并再次保存在新的顺序中。例如:
<banners>
<banner id="1001">
<infos...>
</banner>
<banner id="1003">
<infos...>
</banner>
<banner id="900">
<infos...>
</banner>
</banners>
假设用户重新安排为900,1003,1001。我希望能够通过ID#获取节点并相应地重新定位它们。有没有简单的方法呢?
答案 0 :(得分:0)
(1)向每个order
节点添加一个子<banner>
,并(2)对该子节点对xml进行排序。
for(1):$xml
是simplexml-object,订单存储在$order
...
$order=array(900,1001,1003);
foreach ($xml->banner as $banner) {
foreach ($order as $k => $v)
if ($banner['id']==$v) $banner->addChild('order',$k);
}
for(2):按order
排序xml:
请参阅此帖中接受的答案:sorting the table fields using simple XML and xpath
查看live-demo @ http://codepad.viper-7.com/MdcT7B