Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.06.2006, 00:05
alexGoHome вне форума Посмотреть профиль Отправить личное сообщение для alexGoHome Найти все сообщения от alexGoHome
  № 1  
Ответить с цитированием
alexGoHome

Регистрация: Feb 2006
Сообщений: 31
Question XML десериализация

Уважаемые господа.
У меня трудности при передачи XML с сервера на флеш клиента. Сервер - асинхронный сокет, написан на C#. Проблема в том, что я сериализую объект и получаю строку вида:
Код:
<?xml version="1.0" encoding="utf-16"?>

<ForSerializeField xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <State1>

    <int>0</int>

    <int>0</int>

    <int>0</int>

    <int>0</int>

    <int>0</int>

  </State1>
</ForSerializeField>
Строка в таком виде приходит в onXML на клиента, но АС не может ее распознать как XML.

Код:
mySocket.onXML = function(msg)
{
	var e = msg.firstChild;
	//или так   var e = new XML(msg);
	if (e != null && e.nodeName == "ForSerializeField") {
		trace(msg);
	}
здесь e.nodeName = null и в других случаях
Подскажите пожалуйста как мне к моим нулям подобраться

Спасибо.

Старый 20.06.2006, 02:01
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 2  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Код:
import mx.utils.Delegate;

mySocket.onData = Delegate.create(this,onXMLData);

function onXMLData(text:String):Void{
	var xml:XML=new XML();
	xml.ignoreWhite=true;
	xml.parseXML(text);
             onXML(xml);		
};

function onXML(xml:XML):Void{
   trace(xml.toString());
};


Последний раз редактировалось Sneg; 20.06.2006 в 02:11.
Старый 20.06.2006, 03:12
alexGoHome вне форума Посмотреть профиль Отправить личное сообщение для alexGoHome Найти все сообщения от alexGoHome
  № 3  
Ответить с цитированием
alexGoHome

Регистрация: Feb 2006
Сообщений: 31
я так пробовал, не помогает, правда без делегата. обычный onData и onXML использовал.
Скажу больше, пробовал посылать строку "<Test name=kuku text=koko />"
принимает, читает атрибуты, все четко работает.

Старый 20.06.2006, 04:55
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 4  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
За неимением XMLSocket'a использовал LoadVars, думаю разницы в данном случае никакой нет - тоже событие onData. XML использовал тот,то был в твоем первом сообщении.
Вложения
Тип файла: rar example.rar (4.7 Кб, 45 просмотров)

Старый 20.06.2006, 09:16
Juice_Green вне форума Посмотреть профиль Отправить личное сообщение для Juice_Green Посетить домашнюю страницу Juice_Green Найти все сообщения от Juice_Green
  № 5  
Ответить с цитированием
Juice_Green
 
Аватар для Juice_Green

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
просто на onXML у тебя приходит строка, сделай из нее XML
а ошибка в том - что в приходящем ответе есть такие узлы как \t или \n
просто создай на основе ответа новую xml и работай с ней

Код:
mySocket.onXML = function(msg)
{
	
	var answerXML:XML = new XML();
	answerXML.ignoreWhite = true;
	answerXML.parseXML(msg);
	trace(answerXML);
           
              var e:XMLNode = answerXML.firstChild;
	trace(msg);
	}

Старый 21.06.2006, 02:15
alexGoHome вне форума Посмотреть профиль Отправить личное сообщение для alexGoHome Найти все сообщения от alexGoHome
  № 6  
Ответить с цитированием
alexGoHome

Регистрация: Feb 2006
Сообщений: 31
Спасибо всем!
заработало после того как одстранил объявление типа,
var answerXML:XML = new XML(); -> var answerXML = new XML();

в чем разница, я вроде в АС2 пишу ?

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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