| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > разбор XML, реги, DOM, что лучше? |
| Автор: Хрипа 2.3.2007, 00:51 |
| Помогите разобратся с регулярными выражениями плз.. Нужен простой пример как обработать стрoку в вида <USER name="Жека" Town="Moscow" /> Что бы в скрипте было так: user['name'] Содержало слово Жека |
| Автор: Sardar 2.3.2007, 01:22 |
| Пока ты не наделал глупостей, это строка из XML документа, что ты через XMLHttpRequest получаешь? Слышал о http://w3.org/DOM? |
| Автор: Хрипа 2.3.2007, 02:53 |
| Знаешь как говарится лучше спросить у ГУРУ нежели самому втыкать сутки что бы разобратся ) Хотелось бы получить пример ПО: XMLHTTPRequest.responseXML - если ответ сервера пришел в виде правильного XML, возвращает XML DOM объект. Методы и функции обьекта DOM Обьекта. Добавлено @ 03:01 Точней получить груду отгенериного текста с БД не php И всё это передать по запрос Но как обработать в виде name[value] [] |
| Автор: Хрипа 2.3.2007, 10:05 | ||
На выходе 1 ----------- Но мне надо обработать сраку в виде <USER name="Жека" Town="Moscow" /> Тойсть что бы данные получались по имени тега USER так что бы oItem1[имя тега]["name"] содержало значения ЖЕКА Если есть другие способы реализации помогите ПЛЗ |
| Автор: Хрипа 2.3.2007, 10:29 | ||
На выходе ТЕСТ Но как видно я так и не додумался как обработать <USER name="Жека" Town="Moscow" /> |
| Автор: Хрипа 2.3.2007, 10:45 | ||
на выходе почему-то только TEST |
| Автор: S.A.P. 2.3.2007, 11:19 | ||
| Я - бы в данном случае обрабатывал JSON: строка вида {name:"Жека", Town:"Moscow"} парсится так:
|
| Автор: Хрипа 2.3.2007, 11:24 |
| А где джонсона взять то ? |
| Автор: S.A.P. 2.3.2007, 11:30 |
| Хрипа, тебе сложно на сервере вместо XML - JSON строку сгенерить? На клиенте JSON легко парсится подручными средствами javascript (как я уже показал). Если этого не достаточно, ссылка: http://json.org |
| Автор: Хрипа 2.3.2007, 11:37 |
| Понел но как мне посдавить ? Ситуция в том что комне приходит груда текста который я не знаю и мне надо автоматом его разобрать var text = '{name:"Жека", Town:"Moscow"}'; Для меня это уже не приемлемо мне проше использывать split var resp =req.responseText.split("|"); Где Php выводит данные "$user|$town" resp[0] = Жека resp[1] = Moskow response.innerHTML=resp[2]; |
| Автор: Хрипа 2.3.2007, 11:52 |
| можно конечно раскопирывать и получется грамадный код а мне надо что бы всё одной функцией было что бы Код был минимум строк и максимум работоспасобен Через сплит не всегда удобно иногда мне надо name=val И тогда получается resp[0] = name pesp[1] = val |
| Автор: Хрипа 3.3.2007, 07:34 | ||||
Документ с которого тяним инфу и передоём
Добавлено @ 07:42 Отвыкайте от JSON! Это не безопасно, ведь на eval фактически любой код можно пустить, оно вам надо? Угу Чюжие либы юзать не стоит я сам вот не юзаю чужие либы... хочу разобратся как работает и свою написать )) |
| Автор: Sardar 3.3.2007, 16:00 | ||||||
Представим что на сервере формируем ответ типа:
Фактически это список пар (ключь=>значение), чего во многих задачах достаточно. Для расширяемости добавил аттрибут type, которым явно указываем чем является содержимое, отсюда подбираем соответствующую extract* функцию. Аттрибут action задаёт действие для списка параметров, просто не хотел ложить в список нод. Заметь что кодировка в UTF-8, не стоит менять на что то другое. На клиенте собираем ответ:
На сервере формируем валидный XML:
Вся шутка в том, что можешь формировать любой ответ, передавать любую инфу. Всё это расширяемо и удобно. |
| Автор: Хрипа 4.3.2007, 13:11 |
| Спасибо помогло очень! Кстати а что быстрей работает если я отсылаю строку: Названия/Параметры Или XML ? Добавлено @ 13:22 Мне надо максимально быстрая работа что бы не создовалось лишней нагрузки на сервак.. |
| Автор: Sardar 4.3.2007, 14:40 | ||||
А какая серваку разница? В любом случае отсылаешь текст. Ну только если XML DOM'ом собирать, что очень редко требуется. XML это просто набор правил (грамматика) + парсер поддерживаемый повсеместно, так что не понятно почему ещё есть сомнения. |
| Автор: S.A.P. 4.3.2007, 16:24 | ||
можно запустить, а можно и не запустить, если на сервере всё правильно сделать. Я за JSON ! . Какой смысл воротить кучу кода, парсить XML (который к тому - же ущербный по размерам), когда можно обойтись одной строчкой кода? Согласен, иногда бывает удобнее прибегнуть к XML, но только не в этом случае, когда надо просто перегнать сериализованный массив. Кстати, в PHP версии 5.2 JSON уже входит в стандартную библиотеку |
| Автор: Sardar 4.3.2007, 21:52 |
Да ну, на от силы на пару сотен байт будет больше. Экономить на них сопоставимо с ловлей блох. А XML? А ещё более простой YAML? JSON не даёт никаких преимуществ по сравнению с XML, ну разве что собирать его сложней, т.к. собственную либу (пока ещё) писать надо если контент произвольный. Плюсы XML'а в XSLT (хоть включаемым, хоть скриптами), правда редко кто пользуется (от не знания?) предпочитая форматировать данные скриптами. Также сервис становиться доступен для любого софта, а вот JSON нужно ещё парсить, т.к. парсеры не везде есть. Тогда резонный вопрос: в чём реально преимущество JSON? В том что парсится на JS в виде eval'а, кидая исключения при ошибочных (перегружен и т.п.) ответах? Это толком мало кто может объяснить На моей памяти одно преимущество, когда то не все браузеры поддерживали XMLHttpRequest (или в IE отключены ActiveX), тогда было модно делать "псевдо AJAX" создавая динамически элементы <script>. Тогда JSON был единственным способом брать данные. |