Значит так, нашел я в хелпе xml на 4 метра, наблюдал то же самое - скрипт вылетает, то есть одним куском флеш такое не парсит. Тогда я разбил этот xml на куски строк по 50 -100 блоками CDATA, получил xml такого вида:

Код:
<?xml version="1.0" encoding="UTF-8"?>
<book title="Components Language Reference" directory="ComponentRef">
<![CDATA[<book>
... тут строк 50 ...
</book>]]>
<![CDATA[<book>
... тут строк 100 ...
</book>]]>
</book>
Всего около 1500 строк.
И написал такое:

Код:
var myX:XML = new XML();
myX.ignoreWhite = true;
var finX:XML = new XML('<xml/>');
var intervalID:Number;
var i = 1;
myX.onLoad = function (ok){
trace (ok + " " + this.status);
clearInterval(intervalID);
var node = this.firstChild.firstChild;
onEnterFrame = function () {
parseXMLPart(node);
};
};
function parseXMLPart(node){
trace (i++);
delete onEnterFrame;
txt.text = node.toString();
var tempX = new XML(node.nodeValue);
var currNode = tempX.firstChild.firstChild;
while(currNode !=null){
finX.firstChild.appendChild(currNode);
currNode = currNode.nextSibling;
}
delete currNode;
delete tempX;
node = node.nextSibling;
if (node != null) {
onEnterFrame = function (){
parseXMLPart(node);
};
}else{
delete myX;
trace(finX);
txt.text = finX.toString();
}
}
function checkProgress(xmlObj:XML):Void {
var bytesLoaded:Number = xmlObj.getBytesLoaded();
var bytesTotal:Number = xmlObj.getBytesTotal() || 10000000;
var percentLoaded:Number = Math.floor(((bytesLoaded || .01) / bytesTotal ) * 100);
txt.text = "percent loaded: " + percentLoaded;
}
myX.load('test.xml');
intervalID = setInterval(checkProgress, 100, myX);
И все отлично прощелкалось

Код конечно сыроват, расчитан на xml определенной структуры..
Встроенный debug не стоит делать с xml такого размера - флеш гарантировано вылетит. Только самописный.