На сегодняшний день отправка данных в формате XML получила очень широкое распространение. Взять хотя бы RSS ленты. Переоценить их значение очень сложно, а ведь по-сути это обычные XML файлы с данными. Основное преимущество этого способа передачи данных в том, что можно с минимальными усилиями написать обработчик данных и использовать их в своих приложениях. Например, работа практически всех мешапов (mashup) так или иначе, связана с использованием этого формата. В этой статье я постараюсь показать, что работать с форматом XML действительно не сложно, а польза от его использования огромна. Предположим у нас есть конкретная задача.
Нужно показывать сведения о погоде на своем сайте. Ясно, что нанимать человека, который будет слушать прогнозы погоды и обновлять данные совсем не интересно. Тем более, что существуют службы, которые предоставляют эту информацию. Например, gismeteo. ua. Эта служба предоставляет готовые информеры и XML файлы с данными для каждого города. Подключить информер не сложнее чем обычный баннер, т. е. нужно добавить их HTML код на страницу. Но использование XML данных дает ряд преимуществ. Во-первых, вы сможете показать данные в том виде, который больше соответствует дизайну сайта. Во-вторых, такие данные можно легко сохранить и показывать историю изменения погоды за какой-то период, сравнивать данные по городам и т. д. Вариантов тут масса.
Теперь разберем, как получить и обработать эти данные с помощью PHP. Прежде всего, нужно четко представлять структуру данных. Для этого заходим на эту страницу и читаем описание. Здесь я приведу только его фрагмент. TOWN информация о пункте прогнозирования: – index уникальный пятизначный код города – sname закодированное название города – latitude широта в целых градусах – longitude долгота в целых градусах FORECAST информация о сроке прогнозирования: – day, month, year дата, на которую составлен прогноз в данном блоке – hour местное время, на которое составлен прогноз – tod время суток, для которого составлен прогноз: 0 – ночь 1 – утро, 2 – день, 3 – вечер – weekday день недели, 1 – воскресенье, 2 – понедельник, и т. д. – predict заблаговременность прогноза в часах TEMPERATURE температура воздуха, в градусах Цельсия Жирным шрифтом выделены названия XML элементов, а курсивом – названия их атрибутов. Сокращенный фрагмент XML файла выглядит так: