| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > XML vs БД |
| Автор: localhost 1.8.2012, 16:34 | ||
| Всем доброго дня. В веб-технологиях я весьма дилетант, поэтому хочу спросить помощи у любимого форума. Преамбула: есть простой клиент на PHP, который обращается к другому удаленному скрипту и получает от него данные в XML-формате. Пример:
Примерно так. Значения "schedule" - время отправления автобуса в виде сериализованного массива. XML-файл обновляется ежедневно. Амбула. Я использую шаблонизатор Twig. Для вывода общей информации по рейсам (без расписания). Я в принципе могу без проблем использовать SimplXMLElement и в цикле выводить данные. Проблема: в том, что надо сделать кликабельным маршрут, перейдя по ссылке на который можно увидеть расписание и другие параметры. Запутался уже как лучше сделать. В исходном XML нет урла. Думал, что в шаблоне генерировать урл, а потом разбирать его, подгружать нужный шаблон, но непонятно как теперь выводить инфу именно по данному маршруту? Либо запихивать все в базу и огород городить с несколькими таблицами. Может подскажете как проще поступить? Опыта не хватает |
| Автор: Sanchezzz 1.8.2012, 17:02 |
| в xml есть xpath можно составить запрос в виде УРЛ и выбрать нужную запись по условию Опишите что есть к чему можно прицепится. я вижу ток дату |
| Автор: localhost 1.8.2012, 19:56 | ||
| Sanchezzz, благодарю за ответ Можно прицепиться, например, к <number> Тег:
Соответственнно, урл вида www.domain.tld/routes/531-b |
| Автор: Sanchezzz 1.8.2012, 21:34 |
| child::routes/child::bus/child::number[text()="531-Б"] |
| Автор: localhost 2.8.2012, 12:03 | ||
Sanchezzz, ага, т.е. это будет использоваться примерно так:
И в $data будет нужный мне массив. Так я понимаю? |
| Автор: Sanchezzz 2.8.2012, 12:09 | ||
Тока вам нужно будет сделать на один уровень назад вроде /../ |
| Автор: localhost 2.8.2012, 12:15 | ||
| Sanchezzz, спасибо за наводку, будем изучать Добавлено через 7 минут и 22 секунды Все, сделал, только у меня xpath такой получился:
|
| Автор: Evghenusi 2.8.2012, 14:38 |
| localhost, а без xml не обойтись? я вижу сериализованные массивы, нельзя сделать один общий и избавиться от xml? тогда SimplXMLElement не понадобится |
| Автор: localhost 2.8.2012, 15:04 | ||||
| Evghenusi, думаю, так тоже можно, спасибо Кстати, я что-то не совсем так сделал, потому что в возвращаемом массиве "теряется" значение атрибута date тега schedule: Было
Превратилось в:
Можно от этого как-нибудь избавиться? Как-нибудь получать ассоциированный массив вида [дата] => [значение]? |
| Автор: Evghenusi 2.8.2012, 19:26 |
тогда почему дальше ковыряешься в SimplXMLElement ? ты сериализованный массив получил, преобразовал его в массив и вуаля. зачем эти танцы с бубном? Добавлено @ 19:27 кстати, для "полноты картины" добавь JSON)) |
| Автор: localhost 2.8.2012, 19:42 |
Так я данные в XML получаю. Из другого места. Мне с ними и надо работать. А в сериализованном виде передается массив времен на дату, которая является атрибутом XML-тега schedule. Всего лишь. Нет, мне все это очень интересно, конечно, буду изучать постепенно, но не в этот раз, все-таки |
| Автор: Evghenusi 2.8.2012, 19:45 |
| localhost, подумал что входные данные тоже ты формируешь ... пардон( |