парсинг XML

ZlarAlex

Новичок
парсинг XML

Еще раз обращусь к Вам за помощью, уважаемые гуру. Простите если этот вопрос покажется Вам глупым, но я не совсем знаком с работой с XML файлами в PHP.

Итак, у меня есть XML файл, содержащий в себе дамп базы некого интернет-магазина X. В общем структуру этого XML файла можно описать так:

<xml>
<shop>
<categories>
<category id="1111">Фантастика</category>
......
<category id ="999">Зарубежная проза</category>
</categories>

<offers>
<offer id="1" type="book">
<categoryID>1111</categoryID>
<name>Стругацкие. Трудно быть богом</name>
</offer>
.......
<offer id="9" type="book">
<categoryID>9999</categoryID>
<name>Стейнбек. Зима тревоги нашей</name>
</offer>
</offers>
</shop>
</xml>

Передо мной встала задача, зная id'шник категории, получить из соседнего массива данных <categories> по номеру категории ее значения. Я пользуюсь классом SimpleXML. Как практически осуществить обращение к нужной мне категории, учитывая что вся ветка <offers> перебирается мной последовательно в цикле.

Спасибо, буду очень признателен за помощь.
2 Фанат, еще раз простите за беспокойство.
:)
 

begemot

Новичок
И в чем проблема ?
Перестали вдруг работать функции доступа к элементам в SimpleXML ???
 

ZlarAlex

Новичок
Я просто не совсем знаю какую функцию использовать (( копаюсь в интернете, нашел что то про XPath, но ничего не понял....
Есть какая-то функция, чтобы напрямую обратиться к нужной категории, зная ее свойство, в данном случае id, не перебирая циклично весь массив данных?
 

ZlarAlex

Новичок
StUV
если бы я знал английский, я бы на этот форум даже и не полез
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ZlarAlex если проблема в полном непонимании документации на английском даже со словарем - надо менять профессию...
 

programmer_2006

Новичок
Мой совет купи книгу по PHP5. А насчет решения твоей задачи так там все просто SimpleXML возвращает тебе PHP объект вот и работай с ним там простой цикл будет для поиска с проверкой. Кстати раз у тебя БД в XML файле советую почитать про методы поиска (двоичный, пузырька и т.д).
Кстати для понимания примеров знания англ. не обязательно.Возможно у тебя мало опыта.
 

code01

Новичок
preg_match_all('#<category id ="'.$cat_id.'">([^\<\>]*)</category>#s',$content,$cat_content,PREG_PATTERN_ORDER);

Ну и разбор массива $cat_content
 
Сверху