Well... why did you use ArrayCollection to loop through XML??? There's E4X, light years faster and more convenient. Besides, don't put complex expression in condition or iteration part of the loop, they are evaluated each time.
var xml:Xml =
<root>
<item>
<id>1</id>
<associated>
<fKey>2</fKey>
<fKey>3</fKey>
</associated>
<associated>
<fKey>2</fKey>
</associated>
</item>
</root>;
xml.item.associated.fKey.(trace("fKey: " + text()));

