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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.08.2007, 19:40
bettrrr вне форума Посмотреть профиль Отправить личное сообщение для bettrrr Найти все сообщения от bettrrr
  № 1  
Ответить с цитированием
bettrrr
[+4 06.08.07]

Регистрация: Aug 2002
Сообщений: 44
По умолчанию Перевод объекта XML в ассоциативный массив

получился такой класс:
Код:
class XMLParser {

	public var XMLArr:Array = new Array();


	function XMLParser(XMLData) {
		trace("XMLParser created");
		this.Parse(XMLData.firstChild,this);
	}
	function Parse(node, nodeParent) {
		while (node != null) {
			if (node.nodeType !== 3) {
				nodeParent[node.nodeName] = new Object();
				if (node.hasChildNodes()) {
					this.Parse(node.firstChild,nodeParent[node.nodeName]);
				}
			} else {
				nodeParent.value = node.nodeValue;
			}
			for (var attrib in node.attributes) {
				if (nodeParent[node.nodeName]["attributes"]==undefined) {
					nodeParent[node.nodeName]["attributes"] = new Object();
				}
				if (nodeParent[node.nodeName].attributes[attrib]==undefined) {
					nodeParent[node.nodeName].attributes[attrib] = new Object();
				}
				nodeParent[node.nodeName].attributes[attrib] = node.attributes[attrib];
				trace(node.nodeName+"== "+attrib+' = '+node.attributes[attrib]);
			}
			node = node.nextSibling;
		}
		return true;
	}
}
Долго я с ним парился из-за проблем с дебаггером.
Тут всё делается в лоб, может быть можно сделать более красиво?

Старый 07.08.2007, 19:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А почему имя метода Parse и имя свойства XMLArr похожи на имя класса?

И, если уж пишете на AS2, то типизацию надо указывать. Везде.

Старый 08.08.2007, 07:58
zafod вне форума Посмотреть профиль Отправить личное сообщение для zafod Найти все сообщения от zafod
  № 3  
Ответить с цитированием
zafod

Регистрация: May 2007
Сообщений: 116
if (node.nodeType !== 3) - что это за операция? "!=="

Старый 08.08.2007, 08:00
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 4  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Цитата:
Сообщение от zafod
if (node.nodeType !== 3) - что это за операция? "!=="
Наберите в хелпе и узнаете, строгое равенство, соответствие и типов.
__________________
Free-lance | Twitter | Me

Старый 08.08.2007, 10:23
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от zafod
if (node.nodeType !== 3) - что это за операция? "!=="
Строгое неравенство.

Старый 08.08.2007, 10:42
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 6  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Цитата:
Сообщение от __etc
Строгое неравенство.
Угу, сорри
__________________
Free-lance | Twitter | Me

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

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

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


 


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


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