Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Ошибка при чтении XML (http://www.flasher.ru/forum/showthread.php?t=103800)

Molecula 12.11.2007 20:15

Ошибка при чтении XML
 
Создал Аир приложение.
Пишу:
Код:

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, тут два варианта:
  1. пересохранить файл в формате utf-8 но без BOM;
  2. при чтении файла пропустить 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, не нет БОМжей.
Спасиб за ответы, как чёнить получится - напишу.


Часовой пояс GMT +4, время: 15:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.