![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
localhost |
|
|||
![]() Хирург-длятехкт ![]() ![]() Профиль Группа: Участник Сообщений: 712 Регистрация: 8.11.2005 Где: Н.Новгород Репутация: нет Всего: 43 |
Всем доброго дня. В веб-технологиях я весьма дилетант, поэтому хочу спросить помощи у любимого форума.
Преамбула: есть простой клиент на PHP, который обращается к другому удаленному скрипту и получает от него данные в XML-формате. Пример:
Примерно так. Значения "schedule" - время отправления автобуса в виде сериализованного массива. XML-файл обновляется ежедневно. Амбула. Я использую шаблонизатор Twig. Для вывода общей информации по рейсам (без расписания). Я в принципе могу без проблем использовать SimplXMLElement и в цикле выводить данные. Проблема: в том, что надо сделать кликабельным маршрут, перейдя по ссылке на который можно увидеть расписание и другие параметры. Запутался уже как лучше сделать. В исходном XML нет урла. Думал, что в шаблоне генерировать урл, а потом разбирать его, подгружать нужный шаблон, но непонятно как теперь выводить инфу именно по данному маршруту? Либо запихивать все в базу и огород городить с несколькими таблицами. Может подскажете как проще поступить? Опыта не хватает ![]() Это сообщение отредактировал(а) localhost - 1.8.2012, 16:34 |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
в xml есть xpath можно составить запрос в виде УРЛ и выбрать нужную запись по условию
Опишите что есть к чему можно прицепится. я вижу ток дату -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
localhost |
|
|||
![]() Хирург-длятехкт ![]() ![]() Профиль Группа: Участник Сообщений: 712 Регистрация: 8.11.2005 Где: Н.Новгород Репутация: нет Всего: 43 |
Sanchezzz, благодарю за ответ
Можно прицепиться, например, к <number> Тег:
Соответственнно, урл вида www.domain.tld/routes/531-b |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
child::routes/child::bus/child::number[text()="531-Б"]
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
localhost |
|
|||
![]() Хирург-длятехкт ![]() ![]() Профиль Группа: Участник Сообщений: 712 Регистрация: 8.11.2005 Где: Н.Новгород Репутация: нет Всего: 43 |
Sanchezzz, ага, т.е. это будет использоваться примерно так:
И в $data будет нужный мне массив. Так я понимаю? ![]() |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Тока вам нужно будет сделать на один уровень назад вроде /../ -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
localhost |
|
|||
![]() Хирург-длятехкт ![]() ![]() Профиль Группа: Участник Сообщений: 712 Регистрация: 8.11.2005 Где: Н.Новгород Репутация: нет Всего: 43 |
Sanchezzz, спасибо за наводку, будем изучать
![]() Добавлено через 7 минут и 22 секунды Все, сделал, только у меня xpath такой получился:
|
|||
|
||||
Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 6 Всего: 15 |
localhost, а без xml не обойтись?
я вижу сериализованные массивы, нельзя сделать один общий и избавиться от xml? тогда SimplXMLElement не понадобится |
|||
|
||||
localhost |
|
||||
![]() Хирург-длятехкт ![]() ![]() Профиль Группа: Участник Сообщений: 712 Регистрация: 8.11.2005 Где: Н.Новгород Репутация: нет Всего: 43 |
Evghenusi, думаю, так тоже можно, спасибо
![]() Кстати, я что-то не совсем так сделал, потому что в возвращаемом массиве "теряется" значение атрибута date тега schedule: Было
Превратилось в:
Можно от этого как-нибудь избавиться? Как-нибудь получать ассоциированный массив вида [дата] => [значение]? Это сообщение отредактировал(а) localhost - 2.8.2012, 15:38 |
||||
|
|||||
Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 6 Всего: 15 |
тогда почему дальше ковыряешься в SimplXMLElement ? ты сериализованный массив получил, преобразовал его в массив и вуаля. зачем эти танцы с бубном? Добавлено @ 19:27 кстати, для "полноты картины" добавь JSON)) Это сообщение отредактировал(а) Evghenusi - 2.8.2012, 19:43 |
|||
|
||||
localhost |
|
|||
![]() Хирург-длятехкт ![]() ![]() Профиль Группа: Участник Сообщений: 712 Регистрация: 8.11.2005 Где: Н.Новгород Репутация: нет Всего: 43 |
Так я данные в XML получаю. Из другого места. Мне с ними и надо работать. А в сериализованном виде передается массив времен на дату, которая является атрибутом XML-тега schedule. Всего лишь. Нет, мне все это очень интересно, конечно, буду изучать постепенно, но не в этот раз, все-таки ![]() |
|||
|
||||
Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 6 Всего: 15 |
localhost, подумал что входные данные тоже ты формируешь ... пардон(
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |