1

我有一个动态横幅,其中包含保存在 XML 文件中的图像/信息。我正在为用户添加选项来重新排列他们喜欢的图像(Jquery 可排序),一旦我得到新订单(其中包含 id 属性),我想重新排列而不必复制每个节点的信息并再次保存它在新的顺序。例如:

<banners>
 <banner id="1001">
  <infos...>
 </banner>
 <banner id="1003">
  <infos...>
 </banner>
 <banner id="900">
  <infos...>
 </banner>
</banners> 

假设用户重新排列为 900、1003、1001。我希望能够通过 ID# 获取节点并相应地重新定位它们。有没有一种简单的方法可以做到这一点?

4

1 回答 1

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);

}

对于 (2): 对 xml 进行排序order
请参阅这篇文章中接受的答案:使用简单 XML 和 xpath 对表字段进行排序

见现场演示@http ://codepad.viper-7.com/MdcT7B

于 2013-03-27T00:25:23.783 回答