当您为排序(ISort)提供两个字段时,排序算法是否有优先权?如果您按日期和时间排序,那么排序只会在日期相等时排序时间吗?
以下示例代码:
private function sortXMLListCollection(listCollection:XMLListCollection, fields:Array):XMLListCollection
{
var descendingSort:Sort = new Sort();
descendingSort.fields = new Array();
for each( var field:String in fields)
{
descendingSort.fields.push(new SortField(field, true));
}
listCollection.sort = descendingSort;
listCollection.refresh();
return listCollection;
}
Function Call: sortXMLListCollection(patchCollection, ["date", "time"]);
Sample XML:
<patch>
<time>08:44:46</time>
<date>10/10/12</date>
</patch>
<patch>
<time>08:51:09</time>
<date>10/10/12</date>
</patch>
<patch>
<time>08:46:04</time>
<date>10/11/12</date>
</patch>
不知何故,上述功能无法正常工作。我希望它首先比较日期,只对日期相等的时间进行排序。
感谢您的帮助
答案 0 :(得分:0)
你的问题不是你的代码......这是你的xml。
如果添加根节点,您的代码将按预期工作:
var xml:XML =
<root>
<patch>
<time>08:44:46</time>
<date>10/10/12</date>
</patch>
<patch>
<time>08:51:09</time>
<date>10/10/12</date>
</patch>
<patch>
<time>08:46:04</time>
<date>10/11/12</date>
</patch>
</root>
var patchCollection:XMLListCollection = new XMLListCollection(xml.patch);
sortXMLListCollection(patchCollection, ["date", "time"]);