Парсинг повторяющихся границ внутри повторяющихся с переименовыванием картинок

Тема в разделе "Решение различных задач по парсингу", создана пользователем Aleksey746, 12 авг 2019.

Метки:
  1. Aleksey746

    Aleksey746 Member Пользователи

    Регистрация:
    10 сен 2018
    Сообщения:
    46
    Приветсвуют
    есть граница "name"
    нужно для всех картинок дать имя в транслите. Пробовал через DFN ничего не получается.
    Понимаю что то делаю не так в этом коде
    Код:
    [DFN][CLEAR][TRANSLITE][NOFOLDER]<CD_GRAN_2!>[/DFN][REPLACE(files/|products/additional_media/)]<DOWNLOADFILE>[VALUE]</DOWNLOADFILE>[/REPLACE]
    .
    Не пойму что не так делаю
     

    Вложения:

  2. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Привет

    Во второй циклической границе парсинга, указываешь ссылку на имя неправильно
    <CD_GRAN_2!> - так указывается первое встретившееся вхождение во всем XML - тоесть имя первого оффера
    [GRAN2] - а так указывается вхождение именно внутри VALUE повторяющейся границы!

    Вот такой шаблон второй повторяющейся границы верный

    [DFN][CLEAR][TRANSLITE][NOFOLDER][GRAN2][/DFN][REPLACE(files/|products/additional_media/)]<DOWNLOADFILE>[VALUE]</DOWNLOADFILE>[/REPLACE]
     
    Root нравится это.
  3. Aleksey746

    Aleksey746 Member Пользователи

    Регистрация:
    10 сен 2018
    Сообщения:
    46
    Пробовал в таком варианте но тогда названия картинок берутся с url страницы, то есть не переименовываются :(
     
    Последнее редактирование: 13 авг 2019
  4. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Старайтесь писать развернуто. Я не понимаю о чем мы говорим. Сделайте в блокноте вариант руками, как для двух произвольных offerid должны называться картинки, я вам покажу как добится такого эффекта
     
  5. Aleksey746

    Aleksey746 Member Пользователи

    Регистрация:
    10 сен 2018
    Сообщения:
    46
    Задача следующая получить название картинки в транслите из название товара.
    То есть если товар по Ссылки недоступны для гостей имеет название
    То название картинки будет следующее
     
  6. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Причем тут товар по ссылке , мы вроде парсим xml по offer ?
     
  7. Aleksey746

    Aleksey746 Member Пользователи

    Регистрация:
    10 сен 2018
    Сообщения:
    46
    Я как для примера привел. Да все верно парсим по ссылке xml
    Как вы писали в первом посте пробовал, ничего не вышло
     

    Вложения:

    Последнее редактирование: 13 авг 2019
  8. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Да я понял это же я сам уже под вечер затупил, у Вас там ведь смежный цикл 2 передается в шаблон первой повторяющейся границы, а в циклической границе 2 нет вхождения внутри по обычной границе парсинга 2.
    Поэтому так как вы делаете сделать не получится , в моем понимании.

    Лучше не добавлять в первую циклическую границу смежную вторую.

    А

    Сделать все в первой циклической границе, в ее шаблоне вывода, кинуть в цикл саму VALUE первой повторяющейся границы, тогда сработает .

    Этот макрос смотрите : [GETMORECYCLECONTENT][SOURCE][VALUE][/SOURCE]
     
  9. Aleksey746

    Aleksey746 Member Пользователи

    Регистрация:
    10 сен 2018
    Сообщения:
    46
    Ок попробую, почитал справку пока не понял как именно он работает, было бы не плохо по нему сделать видео обзор.
     
  10. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор

    Там всё просто:
    Ссылки недоступны для гостей

    В нашем случае источник где ищет макрос GETMORECYCLECONTENT, это один цикл повторяющейся границы 1



    [GETMORECYCLECONTENT][SOURCE][VALUE][/SOURCE][START]начало парсинга[/START][END]конец парсинга[/END][TOSTART]добавить в начало каждого цикла[/TOSTART][TOEND]добавить в конец каждого цикла[/TOEND][PARAMS]параметры[/PARAMS][SEP]чем разделять циклы[/SEP][MAX]максимальное число циклов[/MAX][MIN]минимальное число циклов[/MIN][/GETMORECYCLECONTENT]

    При этом, для наглядного назначения границ, можно визуально в главном шаблоне вывода , на примере макроса GETMORECONTENT, получить нужные старт и энд, в этом макросе это визуализировано стандартными методами.
     
    kagorec и Root нравится это.

Поделиться этой страницей