Здравствуйте!
Весь день сегодня рыл интернет и читал справочные материалы по .sort() и .sorOn(), но фактически, смотрел как баран на новые ворота.
Не получается сортировать двумерный массив сформированный в XML.
XML для примера. Задача — отсортировать товары по цене в порядке убывания:

Код:
<?xml version="1.0" ?>
<shop name="SuperMarket">
<product name="Apple" price="13" type="food" />
<product name="Juice" price="32" type="food" />
<product name="Ball" price="45" type="other" />
<product name="Bike" price="01" type="other" />
<product name="Shirt" price="04" type="other" />
<product name="Cup" price="32" type="other" />
<product name="Phone" price="67" type="other" />
<product name="Rice" price="11" type="food" />
<product name="Pepper" price="06" type="food" />
<product name="Toy" price="33" type="other" />
<product name="Bag" price="90" type="other" />
<product name="Turkey" price="86" type="food" />
</shop>
Способ №1:

Код AS1/AS2:
import com.xfactorstudio.xml.xpath.XPath;
var mycontent:XML;
mycontent = new XML();
mycontent.onLoad = function(success:Boolean):Void {
if (success) {
var products:Array = XPath.selectNodes(mycontent, "shop/product/");
var Name:Array = XPath.selectNodes(mycontent, "shop/product/@name");
var Prices:Array = XPath.selectNodes(mycontent, "shop/product/@price");
for (i = 0; i < products.length; i++) {
normal.text += Prices[i] + " - " + Name[i] + "\n";
}
products.sortOn("price",Array.DESCENDING | Array.NUMERIC);
//
for (i = 0; i < products.length; i++) {
sorted.text += Prices[i] + " - " + Name[i] + "\n";
}
}
};
mycontent.load("shop.xml");
Здесь массив products представляет из себя такую штуку:
Сортировка не работает. Массивы до и после сортировки не отличаются. Результат:
Со вторым способом результат такой же. Кусок кода отвечающий за сортировку:

Код AS1/AS2:
function order(a, b):Number {
var name1:String = a.attribute.price;
var name2:String = b.attribute.price;
if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}
for (i = 0; i < products.length; i++) {
normal.text += Prices[i] + " - " + Name[i] + "\n";
}
products.sort(order);
for (i = 0; i < products.length; i++) {
sorted.text += Prices[i] + " - " + Name[i] + "\n";
}
Добавлено через 41 секунду
Что я делаю не так? Или что я не делаю?