Подстановка данных из одной границы парсинга в другую по условию

Тема в разделе "PHP-скрипты для шаблона вывода", создана пользователем Dennis, 15 авг 2015.

Метки:
  1. Dennis

    Dennis New Member Пользователи

    Регистрация:
    22 авг 2014
    Сообщения:
    3
    Всем добрый день!

    Думаю что это достаточно типичная проблема, возникающая при парсинге в csv файл:

    Есть интернет-магазин. В нем часть товаров указана со скидкой, другая часть без скидки.

    Name Base price Discount price
    Product A 10 504 руб 7 350 руб
    Product B 14 920 руб

    Все бы ничего, если бы только цены без скидки записывались в свой столбец и наоборот. Но очень часто бывает следующая ситуация и результат в csv выглядит следующим образом:

    Name Base price Discount price
    Product A 10 504 руб 7 350 руб
    Product B ------------- 14 920 руб

    Это происходит если начальная граница парсинга одинакова для цен со скидкой, так и цен без скидки:

    Вариант 1 - без скидки:
    <div data-item-prop="price" class="newprice"><span class="priceValue"><!---->14 920</span> <span class="currency"><!---->руб</span>.</div><div data-item-prop="priceWithoutPromotion" class="oldprice"><!----></div>

    Вариант 2 - со скидкой:
    <div data-item-prop="price" class="newprice"><span class="priceValue"><!---->7 350</span> <span class="currency"><!---->руб</span>.</div><div data-item-prop="priceWithoutPromotion" class="oldprice"><span class="priceValue"><!---->10 504</span> <span class="currency"><!---->руб</span>.</div><div data-item-prop="percentDiscount" class="discountPct">-30%</div>

    Несложно обработать csv файл после парсинга, например в Excel, задав два дополнительных столбца и прописав простые формулы:

    If(Base price =""; Discount price; Base Price)
    if(Base price =""; ""; Discount price)

    Но это не позволит автоматизировать процесс парсинга.

    Вопрос:

    1. Можно было вводить данные в обычные (или динамические границы парсинга) непосредственно из других границ парсинга на основании условий (аналогично примеру с Excel).

    2. Если нет, можно ли задавать начальную границу парсинга по условию?

    Заранее большое спасибо.
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    12.478
    Здравствуйте.

    В дополнительных настройках границ парсинга (ctrl+4) для каждой обычной границы парсинга есть поле "если граница окажется пустой..." (поместите в это поле макрос альтернативной границы парсинга, например, <CD_GRAN_2!>).

    Если данное решение вам не подойдет, подберем другое.

    Обращайтесь.

    С уважением к вам, Сергей.
     

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