пятница, 23 июля 2010 г.

Интерресный заказик (2)

Итак, касательно парсера: все оказалось достаточно просто. В качестве инструмента решил использовать SimpleXML. Учитывая то, что не будучи с ним знаком вообще, разобрался с его использованием за пол-дня - он полностью оправдывает свое название:

<?
$doc="http://example.com/catalog.xml";
$res=simplexml_load_file($doc);
?>


Таким образом получаем массив $nodes, содержащий все корневые элементы каталога. Последующий доступ к ним до неприличия прост:


//доступ к 1-му элементу каталога (тэг class), и получение значения аттрибута 'name' его первого дочернего элемента (тэг art):
echo $res->class[0]->art[0]->attributes()->name;


То есть можно получить доступ к элементу любого уровня или его аттрибуту. Вывод осуществляется в формате SimpleXML, в конечном итоге представляющем формат String. Для указания надценки придется преобразовывать String в Double, а затем обратно в String для сохранения значения в TV MODx на конечной стадии работы парсера. Но - глаза боятся, руки делают!)) Итак - осталось сформировать цикл для прохода по всем позициям каталога. Единственный момент... Придется учесть такой момент, что практически невозможно отследить удаленные позиции каталога. Так что придется придерживаться следующего алгоритма:

  1. Полное удаление каталога (скрипт)
  2. Сброс счетчика (скрипт)
  3. Обработка каталога (скрипт)
  4. Сортировка пунктов (вручную? - пока да...)

Комментариев нет:

Отправить комментарий