PDA

Просмотр полной версии : Ошибка при чтении XML


Molecula
12.11.2007, 20:15
Создал Аир приложение.
Пишу:
import flash.filesystem.*;
var file:File = File.userDirectory.resolvePath("AIR_Test/states.xml");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var prefsXML:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
fileStream.close();

Выдаёт:
TypeError: Error #1088: The markup in the document following the root element must be well-formed.
at saveFile_fla::MainTimeline/saveFile_fla::frame1()
at runtime::ContentPlayer/loadInitialContent()
at runtime::ContentPlayer/playRawContent()
at runtime::ContentPlayer/playContent()
at runtime::AppRunner/run()
at global/runtime::ADLEntry()

Структура XML:
<?xml version="1.0" encoding="utf-8"?>
<root>
<xep>Hi!</xep>
</root>

Чт тут не так, не пойму.

aQuestion
12.11.2007, 21:17
а сколько bytesAvailable показало?

Molecula
12.11.2007, 21:33
показало 233.

2morrowMan
12.11.2007, 21:48
Попробуй без первой строки( <?xml version="1.0" encoding="utf-8"?> )

Molecula
12.11.2007, 22:24
Убрал.
var file:File = File.userDirectory.resolvePath("AIR_Test/states.xml");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var prefsXML:XML = XML(fileStream.readUTFBytes(1));
qwe.text=(fileStream.bytesAvailable).toString();
trace((fileStream.bytesAvailable).toString())
fileStream.close();

В текстовике выдаёт - 193.
А как XML вывести в текстовое поле, так?:
qwe.text=prefsXML.toString();

screamge
13.11.2007, 07:19
А почему ты XML «грузишь» через fileStream? В чём сокральный смысл?

vooparker
13.11.2007, 10:36
2Molecula:
по всей видимости у тебя в начале файле присутствует BOM, тут два варианта:

пересохранить файл в формате utf-8 но без BOM;
при чтении файла пропустить BOM - навскидку так:

var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
fileStream.position = 3;
var prefsXML:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
fileStream.close();

Molecula
13.11.2007, 14:22
2 screamge:
Не знаю, пример из Хелпа.
А как правильно его грузить?

2 vooparker
ЮТФ без БОМОВ был сохранен.
Попробую сделать, как предлагаете.

screamge
13.11.2007, 14:41
Ну класс XML никто ещё не отменял, а пример из хелпа скорее всего относится к чтению и записи.

Вот пример того что как считывать из файла и читать полученое.
http://tdotblog.info/?q=node/6

vooparker
13.11.2007, 14:56
2Molecula: открой файл в каком нить hex-редакторе и посмотри есть BOM или нет =)

Molecula
13.11.2007, 15:33
2 screamge: да, пока ехал на работу - то ж об этом подумал :D.
2 vooparker, не нет БОМжей.
Спасиб за ответы, как чёнить получится - напишу.