PDA

Просмотр полной версии : XML.load формат данных


mogadan
14.01.2003, 10:53
1. насколько для него важна правильность XML документа?
т.е. я хочу загрузить простой HTML, соответсвенно там могут быть не закрытые теги, атрибуты без кавычек, и пр.
поймет ли он такое?

2. возможно ли загрузка в XML формате из скрипта, предавая туда данные Post'om?

3. если нет, то можно ли загрузить данные из текстового файла, кроме как LoadVariables? допустим это просто plain текст


4. объясните на пальцах разницу между LoadVariables, и LoadVariablesNum

заранее благодарен

УильямБрэдберри
14.01.2003, 12:22
1 ему абсолютно пофигу, что грузить, но html он не пропарсит в 95%

2 да

3 тем же XML.load
|| loadVars

4 если loadVariablesNum, то данные ты грузишь в _level
если loadVariables, то в муви-клип.

mogadan
14.01.2003, 12:41
1. т.е. я могу загрузить в XML объект HTML, но не получится распарсит, но использовать я его смогу? так?

2. а поподробнее в документации у XML.Load сигнатура
myXML.load(url)
как сказать чтобы данные грузились POST?

mogadan
14.01.2003, 12:50
а loadVariables предназначен для загрузки _только_ в формате
var1=value1&var2=value2
?

efim
14.01.2003, 13:57
насчет второго поста уеs

насчет первогопоста первый вопрос да

второй не знаю я


пример использования

o = new XML();
o.load("test.txt");
o.ondata = function(data) {
images = data.split("\r\n");
play();
};
поюсню создаем обьект хмл загружаем файл но не обрабатываем

на сабытие ондата идет обработка файла пример мне дал свое время ish

УильямБрэдберри
14.01.2003, 16:45
john меня в свое время поправил

o.load ставится в последнюю очередь,
так грамотнее выглядит, хотя и не принципиально.

1. т.е. я могу загрузить в XML объект HTML, но не получится распарсит, но использовать я его смогу? так?

1 да так
использовать можно
но флэшевлму парсеру тут доверять не стоит, если не известен заранее контент (что там не будет незакрытых тэгов например).

2 o.load обязан POST-ом грузить просто

mogadan
15.01.2003, 10:53
Спасибо! все заработало. Но вылезло 2 новые проблеммы.

1. у загруженного текста не показываются русские буквы

2. как обработать ошибку, когда нет соединения с URL из которого грузим XML?

efim
15.01.2003, 11:50
1 поиск или System.useCodepage=true; или перекадируй текст в иникод так верней
2 я тебе сразу не скажу но повидимуму используй простую проверку на загрузку XML.getBytesTotal

XML.getBytesTotal в том случие если не чего не загруженно(на самом деле эта цифра не равна нулю где- то 4 байта но я могу ошибаться)

или используй XMLSocket.connect далее пример из хелпа
function myOnConnect(success) {
if (success) {
trace ("Connection succeeded!")
} else {
trace ("Connection failed!")
}
}
socket = new XMLSocket()
socket.onConnect = myOnConnect
if (!socket.connect(null, 2000)) {
trace ("Connection failed!")
}

file://localhost/C:/PROGRAM%20FILES/MACROMEDIA/FLASH%20MX/Help/Flash/ContextHelp.htm

mogadan
15.01.2003, 12:34
Хорошо, следующий момент.
моя Флешка долна загрузить XML с машины клиента, это возможно? не по абсолютному пути а по URL
вроде http://localhost:8978/path

почему то локально работает, выкидываю на хостинг - не работает

efim
15.01.2003, 13:07
насчет первого не знаю насчет второго делай проверку загрузки файла

mogadan
15.01.2003, 13:41
Socket мне не подходит, ибо я в URl передаю параметры.

я делаю по аналогии ( поправьте где я вру?)
на кнопку:
on(release)
{
txtStatus="loading....";
var o= new XML();
o.load("http://127.0.0.1:8888/myscript?id=123");
o.onData = function(data) {
outText = data;
txtStatus="Load Success";
play();
};
o.onLoad = function(success) {
if (success){txtStatus="Load Success"; }
else{txtStatus="Load FAILED";}
};


}

mogadan
15.01.2003, 16:28
вот исходник посмотрите плз, что не так?
я уже совсем ничего не понимаю

mogadan
15.01.2003, 18:37
Похоже я понял, я это ввело меня в ступор.

ЗАЧЕМ??? Зачем это сделано?

я имею ввиду вот эту строку из документации
" The URL must be in the same subdomain as the URL where the movie currently resides. "
...

=((
какое зло можно причинить _считав_ файл с другого хоста, ведь то что его нельзя считать флешем, не значит что его нельзя считать совсем.

efim
16.01.2003, 01:20
малодец

mogadan
16.01.2003, 10:39
:( :( :( :( :(
было бы смешно еслиб не было так грустно

efim
16.01.2003, 11:46
даже боюсь спрашивать почему грустно

mogadan
16.01.2003, 11:53
разачаровался во флеше..... :( :( :(
а XMLSocket то, может к любому соединится хосту? или тоже только к своему?

john
16.01.2003, 19:37
Такое ограничение сделано для безопастности.
Не столько пользователя, а сколько самой технологии.

Если бы было бы разрешено обращаться к любому домену из другого домена, то можно было из флэш-банеров, к примеру, "бомбить", "атаковать" какой-нибудь другой домен. Или из них же посылать информацию о пользователе.

Если бы так было, то использование технологии стало бы под вопросом.

Для обращение на другой домен используется прокси, которая реализована в Macromedia FlashComm.
В этом случае плейер обращается к своему домену, а серверное приложение в свою очередь "общается" с другим доменом и возвращает результат плейеру.

Сейчас уже есть другие реализации, которые используют возможности коммуникации шестого плейера, созданы по принципу FlashComm.

mogadan
17.01.2003, 11:01
так если флешка расположена на HTML странице, а со страницы я могу "бомбить" другие домены, то почему не могу со флешки.

это глупо. я понимаю если бы это запрещали все технологии...
:eek:

с точки зрения безопастности, критично только запрет обращения к локальным ресурсам клиента.

john
17.01.2003, 14:12
ХТМЛ страницу можно сразу вычислить.
Флэш же банеры будут на разных доменах, на разных страницах,

efim
17.01.2003, 18:09
незнаю навернека но тут есть интересная стотья про решение твоей проблемы http://www.flash-ripper.com/articles/flash/2002_05_16_system_security_allowdomain.htm

mogadan
17.01.2003, 18:24
;) Ух ты, спачибо огромное, сейчас буду пробовать..... ;)
о результатах отпишу если интересно

efim
18.01.2003, 13:28
обязательно

mogadan
22.01.2003, 12:00
похоже это не совсем то.... вот что написано на макромедии: думаю переводить не надо...

Scenario
<http://www.macromedia.com/MovieA.swf> loads <http://www.shockwave.com/MovieB.swf>. MovieA.swf contains the command System.security.allowDomain("shockwave.com") . Therefore, MovieB.swf will be able to access the objects and variables of MovieA.swf.

efim
22.01.2003, 14:01
кароче из мувика б будет доступны обекты и переменые мувика а

ты попробуй

должно плисать хотя и необязано и с xml у них же одинаковые ограничение по безопастности

mogadan
22.01.2003, 15:55
да, не...
allowDomain вызывается в ролике _который_ вызывают

т.е. если мы из A вызываем Б то allowDomain нам надо делать в Б на доменн А

efim
23.01.2003, 11:46
да я понимаю жаль что не смог тебе помочь :(

все равно удачи

mogadan
23.01.2003, 11:56
да ничего, придется сделать маленькую инсталяшку, которая будет на клиента записывать флешку, вроде если с локальной машины запущена флешка, то она может к любому домену обращатся...

кстати так возможно?

страница на моем серваке, на нее пользователь заходит, а на ней флешка грузится с машины пользователь типа по пути
c:\programm files\Mogadan\Super.swf
?

efim
23.01.2003, 12:04
напримую нет а вот через jS я палагаю да

все равно вапрос не ко мне создай новую тему

если через JS то событие onLoad в боди используй

efim
23.01.2003, 12:05
напримую нет а вот через jS я палагаю да

все равно вапрос не ко мне создай новую тему

если через JS то событие onLoad в боди используй но броузер всеравно спросит у пользователя хочет он загрузить или нет