Каталоги поставщиков

Как вытащить цвет из YML param name="Цвет"

2026-06-29
Задача

В YML характеристики товара лежат в повторяющихся param: Цвет, Материал и другие. Для импорта нужно отдельное поле <Цвет>, а исходный набор param не должен смешиваться с результатом.

Короткий ответ

Сначала создайте новый узел <Цвет> внутри offer. В его настройках задайте: Текущее значение любое -> заменить на значение param, но только если @name равно Цвет или содержит подстроку Цвет. Регулярное выражение ^Цвет$ только строго проверяет полное совпадение.

Как сделать в Eofferix

  1. Внутри повторяющегося offer создайте новый дочерний узел <Цвет>.

  2. Откройте настройки значения нового узла <Цвет>.

    Открытие настроек цвета
    Настройки применяются к новому выходному полю цвета.
  3. Способ 1: добавьте правило Текущее значение любое, действие Заменить на значение из param; условие для правила — @name Равно Цвет.

    Условие Равно для цвета
    Точное сравнение подходит, когда в файле используется короткое имя Цвет.
  4. Способ 2: если поставщик пишет Цвет товара, используйте @name Содержит подстроку Цвет.

    Условие Содержит подстроку для цвета
    Этот вариант не требует регулярного выражения для длинных названий параметров.
  5. Способ 3: регулярное выражение ^Цвет$ (находит полное совпадение с Цвет) оставьте как строгий вариант.

    Regex-условие для цвета
    Regex нужен только для строгой проверки полного совпадения.
  6. На исходных param отключите вывод цвета или всего служебного списка параметров, если он больше не нужен в результате.

Было / стало

Было

исходные данные
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-11001">
        <name>Лампа Ладога</name>
        <param name="Цвет">белый</param>
        <param name="Материал">сталь</param>
      </offer>
      <offer id="YML-11002">
        <name>Кресло Волга</name>
        <param name="Цвет">черный</param>
        <param name="Материал">дерево</param>
      </offer>
    </offers>
  </shop>
</yml_catalog>

Стало

результат
<offers>
  <offer id="YML-11001">
    <name>Лампа Ладога</name>
    <Цвет>белый</Цвет>
  </offer>
  <offer id="YML-11002">
    <name>Кресло Волга</name>
    <Цвет>черный</Цвет>
  </offer>
</offers>

Обрабатывайте данные быстрее с Eofferix

Создайте бесплатный аккаунт, чтобы автоматизировать каталоги и прайс-листы под ваши правила.

Зарегистрироваться