Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Adobe FLASH | Базовый курс : [см.]  
  2 августа 2010
Adobe FLASH | Углубленное программирование : [см.]  
  20 сентября 2010
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны



Вернуться   Форум Flasher.ru > Программирование > XML

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.10.2006, 11:34
ex.image вне форума Посмотреть профиль Отправить личное сообщение для ex.image Найти все сообщения от ex.image
  № 1  
Ответить с цитированием
ex.image

Регистрация: Jan 2006
Адрес: Москва
Сообщений: 71
Отправить сообщение для ex.image с помощью ICQ
По умолчанию XML Парсер

Доброго всем времени суток.

Предлагаю простой XML парсер. Незнаю кому как а мне он гораздо облегчил жизнь

Запакован в Extension. Пример работы с парсером написан в описании Extension'а. Но на всякий случай привожу инструкцию здесь:

Парсер имеет две функции:

1) XML2Objects(xml.firstChild) - функция перебирает все ветки xml документа и состовляет структуру

2) Objects2XML(StructuredData) - пробегаясь по всей структуре парсер собирает xml документ

Пример работы парсера:

Код:
var StructuredData;
var xml:XML = new XML();
var parser = new org.redTreeStudio.XMLUtils();
xml.ignoreWhite = true;
xml.onLoad = function() {
   StructuredData = parser.XML2Objects(this.firstChild);
   ResultXML = parser.Objects2XML(StructuredData);
   trace(ResultXML);
};
xml.load("your_xml.xml");
В данном примере разборка xml документа происходит с включением основного тега, т.е. если структура xml документа такова:

Код:
 <data>
 	<video>
 		<item>
 		</item>
		<item>
 		</item>
 	</video>
</data>
то все ветки будут доступны по следующему пути: StructuredData.data.video.item[n]


Теги массивов должны быть однородными со структуре:
-- НЕ ПРАВИЛЬНО: <TestData> <Item><wrongTag>Text1</wrongTag></Item> <Item>Text2</Item> </TestData>

-- ПРАВИЛЬНО: <TestData> <Item>Text1</Item> <Item>Text2</Item> </TestData>
Вложения
Тип файла: rar XMLUtils.rar (2.5 Кб, 341 просмотров)


Последний раз редактировалось ex.image; 02.10.2006 в 11:37.
Старый 02.10.2006, 12:37
etc вне форума Посмотреть профиль Отправить личное сообщение для etc Посетить домашнюю страницу etc Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

модератор
Регистрация: Sep 2002
Адрес: Moscow
Сообщений: 29,060
А какой смысл преобразовывать объект в объект и наоборот?
__________________
Записки о Flash
Заколю вилами за неоформленный код.
#flasher@vtx.ru:6667

Старый 03.10.2006, 10:41
ex.image вне форума Посмотреть профиль Отправить личное сообщение для ex.image Найти все сообщения от ex.image
  № 3  
Ответить с цитированием
ex.image

Регистрация: Jan 2006
Адрес: Москва
Сообщений: 71
Отправить сообщение для ex.image с помощью ICQ
Смысл в том что пока не вышел Flash 9 где в AS3 есть класс XML, приходиться как то работать с хмл по корявому... данный парсер разбирает хмл и получаеться почти то же самое что в AS3.

В основном я работаю с локальными приложениям, а иногда бывает нужно сохранить на каком месте остановился игрок и все это записать в XML.

Shared Object не являеться выходом... так не работает на корпоративных PC или где жесткая политика безопасности )

Старый 03.10.2006, 17:04
etc вне форума Посмотреть профиль Отправить личное сообщение для etc Посетить домашнюю страницу etc Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

модератор
Регистрация: Sep 2002
Адрес: Moscow
Сообщений: 29,060
Что-то я всё-равно не понимаю — чем не устраивает стандартный класс XML?
__________________
Записки о Flash
Заколю вилами за неоформленный код.
#flasher@vtx.ru:6667

Старый 03.10.2006, 18:01
Sh@man вне форума Посмотреть профиль Отправить личное сообщение для Sh@man Найти все сообщения от Sh@man
  № 5  
Ответить с цитированием
Sh@man
 
Аватар для Sh@man

Регистрация: Mar 2002
Сообщений: 846
Отправить сообщение для Sh@man с помощью AIM Отправить сообщение для Sh@man с помощью Skype™
Вот один из самых лучших готовых парсеров, которыми я пользовался http://proto.layer51.com/d.aspx?f=858
Но в любом случае лучше писать самому под собственные нужды
__________________
www.maxshaman.com

Старый 04.10.2006, 10:38
ex.image вне форума Посмотреть профиль Отправить личное сообщение для ex.image Найти все сообщения от ex.image
  № 6  
Ответить с цитированием
ex.image

Регистрация: Jan 2006
Адрес: Москва
Сообщений: 71
Отправить сообщение для ex.image с помощью ICQ
Стандартный класс XML не устраивает по причине того что нельзя вытащить данные по именам тегов, приходиться все это делать с помошью XPath (что то-же не очень удобно), либо Sibling'ами и childNodes'ами - это ваще жуть.

Да ... У них поменьше получилось )))
Мой зато может еще и собирать обратно в XML.

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

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,690
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Цитата:
Сообщение от ex.image
.

Да ... У них поменьше получилось )))
Мой зато может еще и собирать обратно в XML.
Вообще-то я тоже так делал пару раз, но имя нода надо использовать не для обозначения имени поля родительского объекта, а для обозначения класса объекта.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 04.10.2006, 14:16
etc вне форума Посмотреть профиль Отправить личное сообщение для etc Посетить домашнюю страницу etc Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

модератор
Регистрация: Sep 2002
Адрес: Moscow
Сообщений: 29,060
Цитата:
Сообщение от ex.image
либо Sibling'ами и childNodes'ами - это ваще жуть.
А по-моему, перемешивать объект, что бы было «удобно» — ещё бОльшая жуть.
__________________
Записки о Flash
Заколю вилами за неоформленный код.
#flasher@vtx.ru:6667

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

Регистрация: Jan 2006
Адрес: Москва
Сообщений: 71
Отправить сообщение для ex.image с помощью ICQ
Цитата:
Сообщение от __etc
А по-моему, перемешивать объект, что бы было «удобно» — ещё бОльшая жуть.
Смотря что ты понимаешь под перемешиванием

ну например как ты достанешь отсюда значение тега thing:
Код:
<?xml version="1.0" ?>
<xmltest>

	<item>Node 1 Text</item>
	<item attributeExample="Node 2 attribute">
		<thing>Node 2 Child</thing>
	</item>

</xmltest>
с парсером получиться что то типа xmltest.item[1].thing

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

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,690
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Цитата:
Сообщение от ex.image
Смотря что ты понимаешь под перемешиванием

ну например как ты достанешь отсюда значение тега thing:
Код:
<?xml version="1.0" ?>
<xmltest>

	<item>Node 1 Text</item>
	<item attributeExample="Node 2 attribute">
		<thing>Node 2 Child</thing>
	</item>

</xmltest>
с парсером получиться что то типа xmltest.item[1].thing
поставлю в ноде id. и запись примет вид
xdoc.idMap['item']
А если у тебя десять уровней вложенности, то без id один хрен запутаешься.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

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

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

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


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


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