Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Веб-разработка? Это просто! Разбор XML-файлов в .NET


Разбор XML-файлов в .NET

Заметил я вот какую странную вещь - мало я пишу про ASP.NET, несмотря на то, что сам я в основном программирую именно под ASP.NET. И решил я начинать исправлять эту ситуацию потихоньку. И теперь в нашем блоге будет появляться все больше статей, посвященных ASP.NET, да и вообще технологии .NET. И сегодня будет именно такая статья. Посвящена она работе с XML-файлами.

Вы уже наверное заметили, что я люблю парсить XML-файлы. Да просто формат этот очень уж удобный для передачи и хранения различных данных. Взять вот хотя бы тот же gismeteo-информер, который я уже успел распарсить несколькими различными методами. И все эти методы касались языка JavaScript. А теперь попробуем распарсить его и в .NET. Но давайте уж возьмем не сам по себе информер, а кое-какие другие XML-данные с сайта gismeteo.

Исходные данные: Mozilla с установленным FireBug, открытая в нем страница http://informer.gismeteo.ru/getcode/xml.php. Видите внизу три списка, соответственно: стран, регионов и городов? Так вот, когда Вы в нем выбираете страну, то в списки регионов и городов загружаются регионы и города выбранной страны. При этом происходит запрос на сервер gismeteo вот такого вида: http://informer.gismeteo.ru/getcode/index.php. При этом, в POST-параметрах запроса передаются параметры: a1=156 (для регионов), a2n=156 (для городов). 156 - это код России в справочниках gismeteo.

А назад мы получаем XML-файл вот такого вида (здесь я приведу лишь кусок файла):

<cities>
<city value="11845" old_id="99855">Абаза</city>
<city value="4723" old_id="29865">Абакан</city>
<city value="4659" old_id="29485">Абан</city>
<city value="4546" old_id="28581">Абатский</city>
<city value="4607" old_id="28815">Абдулино</city>
<city value="11657" old_id="99666">Абинск</city>
<city value="12874" old_id="89157">Автуры</city>
<city value="3967" old_id="23383">Агата</city>
</cities>

Итак захотел я распарсить именно этот файл. Скажу даже зачем мне это нужно. А вот нужно мне по названию города на русском языке получить соответствующий XML-документ с данными о погоде в этом городе. А XML этот лежит по вот такому пути: http://informer.gismeteo.ru/xml/99855_1.xml , где 99855 - это аттрибут old_id нужного мне города. Понятно, что разобранный файл я сохраню затем в базу данных, откуда и буду выбирать айдишники нужных мне городов. Наверное, можно было попросить эту базу у gismeteo, но я так и не нашел на их сайте работающих e-mail'ов. :) Да и не ищем мы легких путей. Будем самостоятельно парсить их базу .

Продолжение статьи Разбор XML-файлов в .NET читайте на нашем блоге Веб-разработка? Это просто!


В избранное