Игорь А.
14 сообщений
#17 лет назад
Здравствуйте,господа.У меня вопрос....я раньше такое не делал...а как написать в голове не укладывается.
Нужно что то вроде грабера...брать информацию их xml файла...и в правильном порядке размещать на сайте

Вот скажем есть xml файл...
Как мне его правильно разрезать?

Хочу чтобы процесс быть автоматизированным...каждый раз не лезть

Спасибо!
Андрей Л.
457 сообщений
#17 лет назад
Ваш xml:


Научить?$
Вадим Т.
3240 сообщений
#17 лет назад
Попробую объяснить, насколько смогу...

Для начала нужно знать, что подобные задачи можно делать даже без программирования, не написав ни одной строки кода. Например используя XSL/XSLT, позволяющее из входного XML файла (например из Вашего) и из XSL схемы сгенерировать новый документ по правилам, определенным в схеме. Я бы Вашу задачу именно этим способом и делал бы. Что это такое, в двух словах, можно смотреть тут: .

Или же можно написать небольшой скрипт на любом языке, есть два основных варианта - использование DOM и использование SAX. DOM - это строится иерархическая структура в памяти, соответствующая XML документу. SAX - это последовательная событийно-ориентированная обработка документа. В общем, правило такое - для больших XML документов придется использовать только SAX, но это существенно сложнее (разработка займет больше времени, будет больше написано кода). На мой взгляд, самый красивый и наглядный способ обработки XML документов это XPath, но оно очень медленное...

Из скриптовых языков лучше всего использовать Perl, хотя можно сделать красиво под windows и на любом WSH языке (VBS или JScript). Для Java или C# также никакой проблемы это не составляет, библиотек для обработки XML полно.

На PHP такие решения, использующие DOM, далеко не идеальны, так как скрипт обычно отжирает довольно много памяти, и если входной XML большого размера то скрипт может просто вылететь без возможности перехвата исключения о превышении лимита памяти... Или же придется использовать SAX. В любом случае, если уж выберете PHP, то рекомендую использовать именно PHP5, там нативная обработка XML, выполняется существенно быстрее чем в PHP4, и поддержка возможностей XML более полная.

Ну, надеюсь понятно объяснил где копать? Или Вам нужно было дать готовое решение?
Игорь А.
14 сообщений
#17 лет назад
Да,думаю готовое.В интернете нашел пару статей про xml на php - большинство просто копируют статьи для отвода глаз или рейтинга.
Вадим Т.
3240 сообщений
#17 лет назад
Цитата ("barfer"):
Да,думаю готовое.В интернете нашел пару статей про xml на php - большинство просто копируют статьи для отвода глаз или рейтинга.


Если готовое, то тогда пробуйте искать... Или же если есть деньги - можете создать тут на weblancer.net проект на разработку скрипта, думаю отбоя не будет от желающих поучаствовать. Стоить это будет недорого, где-то до 50 USD...

Но послушайте моего совета: PHP - не лучшее решение для такой задачи. А если все же захотите PHP - то используйте именно SAX (как я понял, исходный файл в Вашей задаче может быть очень большим). Или если скорость не критична, можете использовать XPath (опять-таки с SAX фильтром). Если кто-то будет предлагать решения на базе DOM (это намного проще сделать) - не спешите его принимать, иначе на большом входном XML файле скрипт умрет.
Игорь А.
14 сообщений
#17 лет назад
ADI,
Стучись...200153669...обговорим
Николай С.
710 сообщений
#17 лет назад
ADI, что это такое? В плане - чего грабиш? Почему встречаются пустые клетки?
Игорь А.
14 сообщений
#17 лет назад
Цитата ("SolNikolay"):
ADI, что это такое? В плане - чего грабиш? Почему встречаются пустые клетки?

Там уже ошибка файла...
Игорь А.
14 сообщений
#17 лет назад
Набрал я статей...ничерта непонял
Есть же простой способ сделать как у ADI в таблице
Подскажите...
Николай С.
710 сообщений
#17 лет назад
barfer, вам подсказали - XML/XSLT преобразование. Очень хорошая вещь - делал как-то
Игорь А.
14 сообщений
#17 лет назад
SolNikolay,
Цитата:
barfer, вам подсказали - XML/XSLT преобразование. Очень хорошая вещь - делал как-то

Ещё с этим разбираться...эххх
Что никто незнает?!Или все тока за медный грош?!
Николай С.
710 сообщений
#17 лет назад
barfer, грабер - это всегда деньги

tvv, спасибо за SAX - не знал о нем
Вадим Т.
3240 сообщений
#17 лет назад
Цитата ("barfer"):
Ещё с этим разбираться...эххх
Что никто незнает?!Или все тока за медный грош?!


Так а weblancer.net - сайт такой, тут работают за деньги
Мы Вам уже подсказали решение, где копать, теперь Ваша очередь - изучайте материал, разбирайтесь, пробуйте. А если нужен готовый код - то чтобы его сделать это уже нужно работать, а работа должна быть оплачена...