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

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

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

Регистрация: May 2006
Сообщений: 48
По умолчанию парсинг xml :D

Есть XML такого вида:
Код:
<?xml version="1.0" encoding="utf-8" ?>
<Config>
	<Head>Основной текст</Head>
<TableHeadline>

			<Name>имя</Name>
			<Info>инфо</Info>
</TableHeadline>
	<Objects>
		<Item>
			<Name>имя1</Name>
			<Info>инфо1</Info>
		</Item>
		<Item>
			<Name>имя2</Name>
			<Info>инфо2</Info>
		</Item>
	</Objects>
</Config>
Можете привести пример парсинга дочерних узлов. Прочитал только что статью Дембицкого, но на практике пока ничего не получилось, в поиске нашел примеры с братскими узлами и то кривовато оформленными, может я плохо ищу?

Старый 28.06.2007, 17:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Парсинг ... что именно вы хотите?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.06.2007, 17:46
VoCz вне форума Посмотреть профиль Отправить личное сообщение для VoCz Найти все сообщения от VoCz
  № 3  
Ответить с цитированием
VoCz

Регистрация: May 2006
Сообщений: 48
получить все значения айтимов name и info во flash.

Старый 28.06.2007, 18:01
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Код:
var xml:XML = new XML ('<?xml version="1.0" encoding="utf-8" ?><Config>	<Head>Основной текст</Head><TableHeadline><Name>имя</Name><Info>инфо</Info></TableHeadline><Objects><Item><Name>имя1</Name><Info>инфо1</Info></Item><Item><Name>имя2</Name><Info>инфо2</Info></Item></Objects></Config>');
xml.ignoreWhite = true;
function parse (node:XMLNode) {
	var name:String = node.nodeName.toLowerCase ();
	if (name == "name" || name == "info") {
		trace (node.nodeName + ":" + node.firstChild.nodeValue);
	}
	if (node.hasChildNodes () || node.childNodes.length != 0) {
		var j:Number = 0;
		while (node.childNodes[j]) {
			parse (node.childNodes[j++]);
		}
	}
}
parse (xml);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.01.2011, 17:10
regman вне форума Посмотреть профиль Отправить личное сообщение для regman Найти все сообщения от regman
  № 5  
Ответить с цитированием
regman

Регистрация: Sep 2010
Сообщений: 16
у меня уже голова кругом идет от этого парсинга. Нигде толком ниче не могу найти. Итого имеется загружаемый descr.xml:
Код:
<?xml version="1.0" encoding="unicode"?>
<gallery>
    <picture file="001_SummerCamp2006/P1010801.JPG" name="1"/>
    <picture file="001_SummerCamp2006/P1010804.JPG" name="2"/>
    <picture file="001_SummerCamp2006/P1010823.JPG" name="3"/>
    <picture file="001_SummerCamp2006/P1010860.JPG" name="4"/>
    <picture file="001_SummerCamp2006/P1010876.JPG" name="5"/>
</gallery>
мне нужно в поле Display динамического текста вывести name, тоесть описание файла. Если можно - короткий алгоритм всей этой процедуры вывода нужной информации, а то в голове просто не могу связать все воедино.
Начало такое:
Код AS1/AS2:
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("descr.xml");
Что конкретно делает функция parseXML если на пальцах разьяснить??


Последний раз редактировалось regman; 11.01.2011 в 17:14.
Старый 11.01.2011, 17:21
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот вам решение для вашего конфига, если поля находятся на _root и именуются Display1, Display2 ... :
Код AS1/AS2:
var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load('descr.xml');
 
function loadXML (success:Boolean)
{	
	if (success) 
	{
		var node:XMLNode = this.firstChild ;
		var total:Number = node.childNodes.length ;	
		for( i = 0; i < total; i++)
		{
			var fName:String = node.childNodes[i].attributes['name'];			
			trace(fName); //выведет 1, 2, 3, 4, 5
			_root['Display' + i].text = fName;
		}
	}
}
__________________
Идите первым!


Последний раз редактировалось mooncar; 11.01.2011 в 17:28.
Старый 11.01.2011, 17:31
regman вне форума Посмотреть профиль Отправить личное сообщение для regman Найти все сообщения от regman
  № 7  
Ответить с цитированием
regman

Регистрация: Sep 2010
Сообщений: 16
Спасибо за пример. Вроде все понял. Только вот матчасть у меня хромает.

Вычитал насчет XML.onLoad() : К моменту вызова события onLoad полученные данные уже разобраны методом parseXML и помещены в тело экземпляра XML. Тоесть походу parseXML автоматом парсит файл?? Не нужно его вызывать потом нигде?? И в какой момент именно вызывается этот parseXML?? В момент вызова load?

И еще вопрос походу матчасти. Почему вызов функции loadXML идет раньше ее объявления??

Я просто пробую создать свою первую галерею на сайте без слайдшоу. Есть контейнер, с двумя кнопками (вперед, назад) и текстовое поле для вывода информации и фото (Display). Сейчас уже все работает, только не мог вывести описание файла.


Последний раз редактировалось regman; 11.01.2011 в 17:41.
Старый 11.01.2011, 17:41
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
По поводу второго - вызов функции не идет раньше ее определения.
Все действия кода идут последовательно, все функции к тому времени уже определены (которые записаны так, как в моем примере). Просто для удобства я обычно все функции записываю внизу.

А насчет метода parseXML - я им не пользуюсь, точно не скажу. Насколько я понимаю, метод предназначен для превращения строки в объект XML.

И еще. Вот цитата из переведенного хелпа по AS2:
Цитата:
XML.onLoad
...
Обработчик события; вызывается Flash Player, когда XML документ получен с сервера.
__________________
Идите первым!


Последний раз редактировалось mooncar; 11.01.2011 в 17:51.
Старый 11.01.2011, 18:08
regman вне форума Посмотреть профиль Отправить личное сообщение для regman Найти все сообщения от regman
  № 9  
Ответить с цитированием
regman

Регистрация: Sep 2010
Сообщений: 16
У меня стоит задача вывести описание файла name на изображение, загружаемое по пути file, взятому из загруженного файла xml при запуске флэша. А также при каждом переходе к следующей/предыдущей фотографии.

Завтра с утра со свежей головой попробую через ваш пример сделать требуемое...

Старый 11.01.2011, 18:13
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Совет. Заносите при парсинге полученные данные в заранее объявленный массив (или массивы), чтобы потом можно из было оттуда брать при смене слайда.
__________________
Идите первым!

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

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

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


 


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


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