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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.09.2005, 15:37
SerrNovik вне форума Посмотреть профиль Отправить личное сообщение для SerrNovik Посетить домашнюю страницу SerrNovik Найти все сообщения от SerrNovik
  № 1  
Ответить с цитированием
SerrNovik
 
Аватар для SerrNovik

Регистрация: Sep 2005
Адрес: Подмосковье->Химки
Сообщений: 45
Отправить сообщение для SerrNovik с помощью ICQ Отправить сообщение для SerrNovik с помощью AIM Отправить сообщение для SerrNovik с помощью MSN Отправить сообщение для SerrNovik с помощью Yahoo
По умолчанию Вопрос про работу с xml деревом.

Есть дерево, которое загружается в объект menu_xml, притом оно может меняться:


<demo name="Demo 1">
<folder name="Lesson 1">
<clips>
<clip name="Part 1">part1.swf</clip>
<clip name="Part 2">part2.swf</clip>
<clip name="Part 3">part3.swf</clip>
</clips>
</folder>
<folder name="Lesson 2">
<clips>
<clip name="Part 1">part1.swf</clip>
<clip name="Part 2">part2.swf</clip>
</clips>
</folder>

</demo>


Требуется для дальнейшей работы раскидать его на два массива, один с названиями, другой с именами файлов.

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

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Код:
myArray[0]= new Array();
myArray[1]= new Array();
var my_xml:XML = new XML();

my_xml.ignoreWhite = true;
my_xml.xmlDecl = "<?xml version=\"1.0\"?>";
my_xml.onLoad = function(success:Boolean) {
	scanFolder(my_xml.firstChild.firstChild);
	};
scanFolder = function(node_XMLNode){
	var child_xml =new XML;
	child_xml = (node_XMLNode.firstChild.firstChild);
	while (child_xml){
		myArray[0][myArray[0].length]=child_xml.attributes.name;
		myArray[1][myArray[1].length]=child_xml.nodeValue;
		child_xml=child_xml.nextSibling;
		}
	if (node_XMLNode.nextSibling) 
		scanFolder(node_XMLNode.nextSibling)
	else{
		trace(myArray[0])
		trace(myArray[1])
		};
	}

my_xml.load("some.xml");
подправьте, братцы: ".nodeValue;" не пашет, хз почему.
грешу на исходные данные.
плохое решение - пихать значения в атрибуты

Старый 29.09.2005, 17:56
SerrNovik вне форума Посмотреть профиль Отправить личное сообщение для SerrNovik Посетить домашнюю страницу SerrNovik Найти все сообщения от SerrNovik
  № 3  
Ответить с цитированием
SerrNovik
 
Аватар для SerrNovik

Регистрация: Sep 2005
Адрес: Подмосковье->Химки
Сообщений: 45
Отправить сообщение для SerrNovik с помощью ICQ Отправить сообщение для SerrNovik с помощью AIM Отправить сообщение для SerrNovik с помощью MSN Отправить сообщение для SerrNovik с помощью Yahoo
Спасибо, сейчас попробую применить на практике.

Старый 30.09.2005, 13:06
SerrNovik вне форума Посмотреть профиль Отправить личное сообщение для SerrNovik Посетить домашнюю страницу SerrNovik Найти все сообщения от SerrNovik
  № 4  
Ответить с цитированием
SerrNovik
 
Аватар для SerrNovik

Регистрация: Sep 2005
Адрес: Подмосковье->Химки
Сообщений: 45
Отправить сообщение для SerrNovik с помощью ICQ Отправить сообщение для SerrNovik с помощью AIM Отправить сообщение для SerrNovik с помощью MSN Отправить сообщение для SerrNovik с помощью Yahoo
А по поводу ".nodeValue;" Все работает если писать firstChild.nodeValue. Это так, если кого-то вдруг эта проблема тоже будет волновать.

Старый 30.09.2005, 15:30
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 5  
Ответить с цитированием
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Цитата:
Сообщение от SerrNovik
А по поводу ".nodeValue;" Все работает если писать firstChild.nodeValue.
действительно работает, но вроде это не не Child..

Цитата:
Сообщение от seeker2005
Чем плоха практика пихания значений в аттрибуты?
ничем, просто тут они не в аттрибутах

Старый 30.09.2005, 13:35
seeker2005 вне форума Посмотреть профиль Отправить личное сообщение для seeker2005 Найти все сообщения от seeker2005
  № 6  
Ответить с цитированием
seeker2005

Регистрация: Sep 2005
Адрес: Tomsk
Сообщений: 39
Отправить сообщение для seeker2005 с помощью ICQ
Чем плоха практика пихания значений в аттрибуты?
__________________
Голова она не только для того, чтобы кашу есть...

Старый 30.09.2005, 15:34
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 7  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
<clip name="Part 1">part1.swf</clip>

- налицо неправильная организация XML.
правильно наоборот:
<clip url="part1.swf">Part 1</clip>
потому что может понадобиться форматирование типа

<clip url="part1.swf"><![CDATA[<font color="#FF0000">Part 1<font>]]></clip>

в то время как part1.swf никогда форматирования не потребует.

далее:
такого рода перегонка из XML в массив НЕ НУЖНА и говорит о том,
что разработчик попросту не умеет работать с XML.


Последний раз редактировалось BitSky; 30.09.2005 в 15:36.
Старый 30.09.2005, 15:38
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 8  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
> Чем плоха практика пихания значений в аттрибуты?
1. тем что HTML форматирование атрибутов возможно но затруднительно.
2. длинные тексты в атрибутах ухудшают читабельность XML.

Старый 03.10.2005, 06:13
seeker2005 вне форума Посмотреть профиль Отправить личное сообщение для seeker2005 Найти все сообщения от seeker2005
  № 9  
Ответить с цитированием
seeker2005

Регистрация: Sep 2005
Адрес: Tomsk
Сообщений: 39
Отправить сообщение для seeker2005 с помощью ICQ
Так они на то и аттрибуты, чтобы какую-то дополнительную, но не тяжелую и не требующую дополнительной обработки информацию хранить. XML документ действительно не продуман, но это уже дело практики
__________________
Голова она не только для того, чтобы кашу есть...

Старый 03.10.2005, 08:55
SerrNovik вне форума Посмотреть профиль Отправить личное сообщение для SerrNovik Посетить домашнюю страницу SerrNovik Найти все сообщения от SerrNovik
  № 10  
Ответить с цитированием
SerrNovik
 
Аватар для SerrNovik

Регистрация: Sep 2005
Адрес: Подмосковье->Химки
Сообщений: 45
Отправить сообщение для SerrNovik с помощью ICQ Отправить сообщение для SerrNovik с помощью AIM Отправить сообщение для SerrNovik с помощью MSN Отправить сообщение для SerrNovik с помощью Yahoo
Я спросил про перегонку в масив, чтобы как раз посмотреть как с xml работать, потому, как по голому хэлпу очень трудно разобраться. Сейчас у меня несколько рекурсивных алгоритмов, которые всесторенное делают из этого xml я меню любой глубины и без использования внешних масивов или чего-бо там небыло...
Что касается написания xml-я то в моем случае не будет меняться ни один из этих парраметров. Единственное что к типу folder я добавил изменяющийся элемент - открыто/закрыто.

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

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

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


 


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


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