Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Какие есть общедоступные XML парсеры? (http://www.flasher.ru/forum/showthread.php?t=98513)

WindWalker 14.07.2007 23:49

Какие есть общедоступные XML парсеры?
 
В проектах часто приходится работать с данными в виде XML.
Написал несколько самописных XML-парсеров.
В принципе, неплохие.

Но явно кто-то делал это и раньше. Какие есть удобные общедоступные XML-парсеры на AS 2.0?
Просто хочу сравнить со своими. Может быть в чём-то улучшить.

Скрипун 15.07.2007 00:30

чет я сомневаюсь в рациональности писать самопальные парсеры во Flash... Напиши идентичный стандартному и проверь скорость последнего со стандартным.

Dr.OH 15.07.2007 01:26

??? вы че??? можно еще за компанию написать код, который будет разбирать swf-файлы и выводить их через Bitmap... но зачем? во флэше уже есть свой замечательный парсер и есть куча классов-оберток (назовем их так), которые автоматизируют работу парсера и делают использование этого класса более удобным. Но сам парсер ни в коем случае писать не надо!!!

Sh@man 15.07.2007 04:04

http://proto.layer51.com/d.aspx?f=858

etc 15.07.2007 11:15

Ну и зачем вам нужно перемешивать в миксере XML-объект?

WindWalker 16.07.2007 15:18

Цитата:

Сообщение от Dr.OH
во флэше уже есть свой замечательный парсер и есть куча классов-оберток (назовем их так), которые автоматизируют работу парсера и делают использование этого класса более удобным. Но сам парсер ни в коем случае писать не надо!!!

Вот про это я и говорил - про класс обёртку, чтобы обращаться к узлам не через firstChild/nextSibling, а через dot-нотацию.

Цитата:

Сообщение от __etc
Ну и зачем вам нужно перемешивать в миксере XML-объект?

Потому что что-нить типа data.users.user[2].name или config.server.url выглядят гораздо понятнее, чем xml.firstChild.firstChild.childNodes[2].firstChild.nodeValue.

И, кроме того, в меньшей степени зависят от порядка узлов (и наличия/отстутсвия других узлов).

2Sh@man

Спасибо. Забавно, как много общего с моим парсером :)

etc 16.07.2007 15:29

Я советую прочитать эту тему, прежде чем заниматься несвойственной для ООП деятельностью.

WindWalker 16.07.2007 15:50

Оказывается, отображение XML в DOM - это несвойственная для ООП деятельность...

etc 16.07.2007 15:51

Я понимаю ещё приводить к E4X-виду, но в данном случае это придумывание какой-то фигни.

WindWalker 16.07.2007 15:55

Увы, в AS1.0/2.0 полностью привести к E4X виду не представляется возможным. Но приблизиться - можно.

А такая "фигня", кстати, давным давно используется в JavaScript.

etc 16.07.2007 15:57

Цитата:

Сообщение от WindWalker
А такая "фигня", кстати, давным давно используется в JavaScript.

Угу, только там ООП все-равно что на AS1 писать классы. (Ваня Дембицкий был когда-то фанатом этого дела).

WindWalker 16.07.2007 16:03

Кто сильно жаждет следовать парадигме тру-ООП - пусть следует.
Пусть для разбора простенького конфиг-файла ему потребуется 20-30 классов. Зато тру.

Меня вполне удовлетворяет и недо-ООП, где некоторые объекты применяются не как объекты, а как хеш-таблицы с дот-нотацией.


P.S.
Правда, тогда не совсем ясно, почему E4X - это тру?

etc 16.07.2007 16:16

Потому что E4X есть отдельный стандарт. К тому же, он преобразуется в AS-код.

WindWalker 16.07.2007 16:18

А если DOM преобразовали в AS-код - это плохо?

Кстати, чисто внешне, за редкими исключениями, никто даже и не заметит разницу.

etc 16.07.2007 16:20

Я говорю о том, что при создании вот таких вот «аналогов» ни о какой мало-мальски типизации даже речи быть не может.

WindWalker 16.07.2007 16:22

А как в E4X поддерживается типизация?

Dr.OH 16.07.2007 16:42

E4X сам по себе является стандартом ;)
типизация, наверное, имеется в виду, что все будут использовать этот класс для всех случаев...

WindWalker 16.07.2007 16:58

Цитата:

E4X сам по себе является стандартом
DOM level 1 тоже является стандартом.

Цитата:

типизация, наверное, имеется в виду, что все будут использовать этот класс для всех случаев...
Во-первых, не все, а те, кому заказчик дал отмашку на использование Flash Player 9.
Во-вторых, под типизацией скорей всё же подразумевалось, что редактор/компилятор смогут чётко определить тип и, соответственно, список членов. И в случае опечатки - сообщить об этом.
Но боюсь, при использовании E4X это не выйдет.
Максимум - в процесе выполнения вывалит исключение.

etc 16.07.2007 17:15

Цитата:

Сообщение от WindWalker
А как в E4X поддерживается типизация?

Это вообще другой подход, другая организация работы. А «аналоги» работают на динамических объектах, у которых нет нужных методов, как в e4x. В e4x каждый объект является XMLList, там производится поиск нужных элементов и т.п. со строгой типизацией.

WindWalker 16.07.2007 18:49

А если в "аналоге" каждый объект так же принадлежит строго одному классу (правда называется иначе)?
Правда класс, само собой, dynamic. Без этого никак.

etc 16.07.2007 19:35

В E4X нет динамических классов. Что-то подобное можно реализовать в AS2, используя __resolve.

WindWalker 16.07.2007 22:00

1. Можно подумать большая разница (в плане чистоты ООП)!
2. В AS2 нельзя использовать __resolve для нединамических классов.

etc 16.07.2007 22:58

1. Безусловно. Динамика должна быть там, где она действительно необходима;
2. Ну вот я к тому и клоню, что нерентабельно это.

Впрочем, делайте как хотите, я не заставляю не делать этого :D

BACRHR 18.07.2007 07:10

Есть замечательная вещь, называеться XPath. Взять можно тут. А вот почитать про нее можно тут

WindWalker 18.07.2007 13:59

Да, XPath хорошая штука. Правда, к сожалению, не очень шустрая.


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

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