PDA

Просмотр полной версии : загрузка "большого" и "хитрого" xml документа


ladon
28.05.2008, 09:37
стартуем загрузку

var loader : URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE,OnManifestComplete);
loader.load(new URLRequest("resources.xml"));


ловим окончание загрузки

private function OnManifestComplete(evt : Event) : void {
var loader : URLLoader = URLLoader(evt.target);
trace(loader.data);
mResurcesManifest = new XML(loader.data);
}


проблема если документ resources.xml больше 4кб то происходит ругань - TypeError: Error #1088: The markup in the document following the root element must be well-formed.

в трейсе выводится документ и в конце добавляется еще какойто мусор
то "parseCSSFontFamily,7parseColor"
то "ive,6sendEvent,6updateProperties"
то "ish"
то "dvancedAntialiasingTable"

зависит от того сколько добавить строчек сверх 4х кб.

формат xml

<Resources>
<Group id="" path="data\test01\" >
<res id="TEST01" path="" file="test01.swf"/>
<res id="TEST03" path="" file="test03.swf"/>
</Group>
<Group id="" path="data\test01\" >
<res id="TEST01" path="" file="test01.swf"/>
<res id="TEST03" path="" file="test03.swf"/>
</Group>
</Resources>


Тег группы копируется до нужного размера
Как побороть?

ladon
28.05.2008, 11:21
Это какое то очень сильное колдунство:
Файл в кодировке utf8 качается без ограничений 1-4-10-100кб.
Файл в ansi кодировке упорно ломается на пределе в 4 кб.
Файлы содержат только английские символы, знаки препинания и цифры, русских букв там нет.

:wacko:

ulik
28.05.2008, 16:04
Вот вам код, а xml (400кб) в атаче. Все отлично работает. Не вижу проблемы...

import flash.net.URLLoader;
import flash.net.URLRequest;

var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, dataLoadedHandler);
myLoader.load(new URLRequest("data.xml"));

function dataLoadedHandler(event:Event):void
{
var resources:XMLList = XMLList(event.target.data);
trace(resources..Group.length());
trace(resources..Group..@file.length())
}


Вот ваша xml 19618

Файл в кодировке utf8 качается без ограничений 1-4-10-100кб
1-4-100-N кб.

ladon
29.05.2008, 12:37
отличие в коде - мой кусок

mResurcesManifest = new XML(loader.data);


Ваш кусок

var resources:XMLList = XMLList(event.target.data);


на XMLList не пробовал, на XML с приатачеными данными получаем ту же проблему.
UTF8 грузится нормально, ANSI не грузится из за мусора.

ulik
29.05.2008, 17:38
new XML... - прошлый век...

BlooDHounD
29.05.2008, 17:56
ulik, вы не правы. ваша запись неудачна.

ulik
30.05.2008, 03:47
История про белого бычка... см. Adobe Code Conventions + кому как... "Неудачна" для вас. Впредь уточняйте.