Проблема! Требуется из xml-файла выбрать только необх. информацию...

Selfish

Новичок
Проблема! Требуется из xml-файла выбрать только необх. информацию...

Добрый день!
Есть такая задача: партнеры предоставляют информацию в xml-файле на своем сервере.
Требуется выбрать информацию по значению определенного тега (информацию о городе по названию города).
Как организовать parsing, да еще чтобы доставало только один блок информации, соответствующий городу?
+ чем пользоваться для "доставания" этой информации? Или лучше свой код использовать?
Я - недавно в XML/RSS etc., если не указал какой нужной информации - конечно-же спрашивайте. =)

Спасибо!
 

svetasmirnova

маленький монстрик
Я мало работала с XML, но SimpleXML кажется удобным, а главное, простым, инструментом для обрисованной задачи.
 

Selfish

Новичок
Автор оригинала: svetasmirnova
Я мало работала с XML, но SimpleXML кажется удобным, а главное, простым, инструментом для обрисованной задачи.
Спасибо за совет! Большая просьба - не могли бы Вы на примере показать как и что сделать, хотя бы в общих чертах? =))

Вот участок этого файла:
<?xml version="1.0" encoding="windows-1251"?>
<forecast>
<f_provider>
<forecast_to_date year="2005" month="5" day="11"/>
<organization>weather agency</organization>
<url>http://www.their_site.ru</url>
</f_provider>
<f_weather_signs>
<weather code="1">дождь</weather>
<weather code="2">снег</weather>
</f_weather_signs>
<c id="12345">
<url>http://www.their_site.ru/page_and_parameters</url>
<city>Город</city>
<country>Страна</country>
<param1>11</param1>
</c>
<c id="12346">
<url>http://www.their_site.ru/page2_and_parameters2</url>
<city>Город2</city>
<country>Страна2</country>
<param1>22</param1>
</c>
</forecast>

Как из него вытащить прогноз (я думаю - это в рамках тега "с") для определенного города?
 

Фанат

oncle terrible
Команда форума
господи, обычный, банальный рег пишется за 2 минуты.
Но людей гипнотизирует слово XML, как взгляд удава Каа - бандерлогов.
Они опускают лапки и и начинают беспомощно вхлипывать - "Ах, я никогда не видел такого страшного зверя - XML! Ах, пропаду я теперь бедный-несчастный, без спецсредств!"
Ужас.
 

Selfish

Новичок
Автор оригинала: Фанат
господи, обычный, банальный рег пишется за 2 минуты.
Но людей гипнотизирует слово XML, как взгляд удава Каа - бандерлогов.
Они опускают лапки и и начинают беспомощно вхлипывать - "Ах, я никогда не видел такого страшного зверя - XML! Ах, пропаду я теперь бедный-несчастный, без спецсредств!"
Ужас.
Фанат,
или
помоги в этой ситуации,
или,
если ты потрудился все это написать лишь для того, чтобы показать свою крутость на контрасте, то вали нафиг.

P.S.
Маугли sucks.
 

Фанат

oncle terrible
Команда форума
насколько я понял из этого бессвязного заявления, регулярные выражения для тебя - тоже тёмный лес?
 

svetasmirnova

маленький монстрик
Фанат
Мда... Вопрос он мне задал, конечно, просто смех. Но SimpleXML - это попроще, чем регулярные выражения писать.
Selfish
Вот здесь: [m]simplexml[/m] всё подробно описано. Если возникнут сложности - читайте пользовательские комментарии и поищите статью на zend.org (не помню адреса) плюс в одном или двух номерах PHPInside была статья. PHP5 only, к сожалению.
 

Selfish

Новичок
Selfish
Вот здесь: [m]simplexml[/m] всё подробно описано. Если возникнут сложности - читайте пользовательские комментарии и поищите статью на zend.org (не помню адреса) плюс в одном или двух номерах PHPInside была статья. PHP5 only, к сожалению.
Спасибо! :)
 

slach

Новичок
вы погодите там с simpleXML работать то
1) как ПОЛУЧИТЬ XML с удаленного сервера у тебя проблем нет?

2) какой объем XML файла ?
если небольшой, до 1 мегабайта
вполне можно SimpleXML пробовать
но будут оверхеды на начальном парсинге
если больше тогда надо будет писать свой SAX парсер и реализовывать сбор данных в нем

2Фанат
регекспы оно конечно хорошо =)
но, для иерархических структур НЕ годится =) и супротив XPath вообще никуда

ему надо информацию уже структурированную вытащить, с учетом предметной области
зачем ему вытаскивать вместо этого массив строк в виде "matches" ?
да еще и в ряде случаев натравливать regexp рекурсивно на результат... оно того не стоит IMHO
 

Фанат

oncle terrible
Команда форума
svetasmirnova
Но SimpleXML - это попроще, чем регулярные выражения писать.
Ага. только тебе придётся, как предыдущему клиенту, пол-дня рассказывать о том, что таоке объект, и как обращаться к его свойствам =)
 

Screjet

Новичок
Selfish
кусок ХМЛя ты привел, а теперь покажи всем что тебе нужно с этого блока ХМЛя.
 

Selfish

Новичок
Автор оригинала: slach
вы погодите там с simpleXML работать то
1) как ПОЛУЧИТЬ XML с удаленного сервера у тебя проблем нет?
Спасибо за ответ, slach!
проблем нет. получаем (+кэшируем).

Автор оригинала: slach
2) какой объем XML файла ?
если небольшой, до 1 мегабайта
вполне можно SimpleXML пробовать
но будут оверхеды на начальном парсинге
если больше тогда надо будет писать свой SAX парсер и реализовывать сбор данных в нем
Объем то - менее 200Кб, другое дело что я на php4, а насколько я понял SimpleXML - в 5-й версии...

-~{}~ 11.05.05 14:23:

Автор оригинала: Screjet
Selfish
кусок ХМЛя ты привел, а теперь покажи всем что тебе нужно с этого блока ХМЛя.
старну, url и "параметры" (в том куску это - param1)

-~{}~ 11.05.05 14:25:

Автор оригинала: bgm
Для этих целей подходит XML_Serializer
bgm, спасибо! похоже это то что надо. сегодня разберусь - сообщу.
 
Сверху