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

Как оставить в XML только записи с кодом поставщика и 13-значным штрихкодом

2026-06-29
Задача

В исходном XML часть товарных записей не содержит кода поставщика, а у части штрихкод состоит не из 13 цифр. В результате должны остаться только записи, в которых выполнены оба требования.

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

Найдите повторяющийся узел, который представляет одну товарную запись, и откройте его настройки. Выберите применение условий к элементу целиком, затем проверьте своё поле кода поставщика на непустое значение, а своё поле штрихкода — по выражению ^\d{13}$.

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

  1. В XML-снапшоте найдите повторяющийся узел, который соответствует одной товарной записи. В учебном XML ниже это product.

    В XML-снапшоте Eofferix красной рамкой выделен повторяющийся узел product
    В примере выбран узел product. В своём XML выберите повторяющийся узел одной записи, даже если он называется offer, item, position или иначе.
  2. Соотнесите узлы примера с соответствующими узлами или атрибутами своего XML. Переименовывать узлы исходного XML под пример не нужно.

    Названия в статье — только пример. product, supplierCode и gtin не являются обязательными именами Eofferix. Используйте реальные пути из своего XML.
    В примере статьиВ вашем XML
    productПовторяющийся элемент одной записи: например, offer, item, position или другое имя.
    supplierCodeПоле кода поставщика: например, vendorCode, sku, article или соответствующий атрибут.
    gtinПоле штрихкода: например, barcode, ean, gtin или соответствующий атрибут.
  3. Откройте настройки повторяющегося узла, раскройте «Условия выгрузки» и выберите «Для элемента целиком». Добавьте два условия:

    • ваше поле кода поставщика — «До преобразований»«не пустое»;
    • ваше поле штрихкода — «До преобразований»«регулярное выражение»^\d{13}$.
    Два условия выгрузки для повторяющегося XML-элемента в Eofferix
    Красной рамкой выделен весь блок: проверка supplierCode, проверка gtin и применение к элементу целиком. Эти имена относятся только к XML-примеру.
  4. Проверьте несколько записей через «Другие значения» или предпросмотр. Условия работают вместе: если хотя бы одно не выполнено, повторяющийся элемент исключается целиком.

  5. Нажмите «Сохранить» в настройках узла, сохраните шаблон и перейдите к преобразованию. После запуска проверьте готовый XML, а не только снапшот.

Что проверяет регулярное выражение

^\d{13}$ означает: от начала до конца значения должны идти ровно 13 цифр.

  • Подходит: 4006381333931.
  • Не подходит: bad-code, 12345678 и 400-638-1333931.
  • В показанной настройке оба условия выполняются «До преобразований», поэтому проверяются исходные значения выбранных полей. Если измените момент проверки, обязательно перепроверьте результат в предпросмотре.
Ограничение. Это выражение проверяет только формат «ровно 13 цифр». Оно не проверяет контрольную цифру EAN-13 и само по себе не подтверждает, что штрихкод действителен. Если нужны EAN-8 или GTIN-14, настройте отдельное условие осознанно.

Было / стало

В примере названия product, supplierCode и gtin выбраны только для наглядности. В результате остаётся одна запись, прошедшая обе проверки.

Было

исходные данные
<catalog>
  <products>
    <product id="1001">
      <supplierCode>VN-1001</supplierCode>
      <gtin>4006381333931</gtin>
      <name>Лампа Ладога</name>
      <price>24.90</price>
    </product>
    <product id="1002">
      <supplierCode></supplierCode>
      <gtin>4601234567893</gtin>
      <name>Кресло Волга</name>
      <price>139.00</price>
    </product>
    <product id="1003">
      <supplierCode>VN-1003</supplierCode>
      <gtin>bad-code</gtin>
      <name>Полка Нева</name>
      <price>16.40</price>
    </product>
  </products>
</catalog>

Стало

результат
<catalog>
  <products>
    <product id="1001">
      <supplierCode>VN-1001</supplierCode>
      <gtin>4006381333931</gtin>
      <name>Лампа Ладога</name>
      <price>24.90</price>
    </product>
  </products>
</catalog>

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

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

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