1
我有这样的XML:重新排序阵列属性然后保存回XML在PHP
<picture id="2">
<title>B</title>
</picture>
<picture id="3">
<title>C</title>
</picture>
<picture id="0">
<title>A</title>
</picture>
努力实现这一点:
<picture id="1">
<title>B</title>
</picture>
<picture id="2">
<title>C</title>
</picture>
<picture id="0">
<title>A</title>
</picture>
以此来获得的“id”属性值的列表:
$objXML = new SimpleXMLElement(XML_FILE_NAME, null, true);
$picture = $objXML->xpath('picture');
$arrayCurrent = array();
foreach($picture as $value) {
$arrayCurrent[] = (string)$value['id'];
}
sort($arrayCurrent); // put XML into numerical 'id' order
print_r($arrayCurrent);
它返回:阵列([0] => 0 [1] => 2 [2] => 3) 任何想法如何重新索引像这样:0,1 ,2并将相应的'id'属性保存回其在XML文档中的正确位置?
谢谢,安迪
我不明白你的答案。 XML文档中节点的物理顺序是不相关的,这就是为什么我给了它们'id'属性,所以我可以按照我选择的顺序显示它们。 ID的需要排序,以便他们去:0,1,2,3,4,5等没有差距,而不是0,1,3,4,6,9等 – Andy 2010-11-11 18:14:40
@andy你描述的不是什么在示例中显示。在这个例子中,他们的图片被排序为1,2,0,这意味着你想要用标题中的字母对ID进行排序。请说明您想要达到的目标,例如排序的规则是什么。 – Gordon 2010-11-11 20:28:14
@戈登感谢您的回复,我试图表明,我没有对xml进行排序,因为它出现在xml文件中,节点的排列顺序是随机的。 id属性需要保持相同的数字顺序,但是“重新编制索引”以使id号码连续。 – Andy 2010-11-11 20:39:43