В исходном XML часть товарных записей не содержит кода поставщика, а у части штрихкод состоит не из 13 цифр. В результате должны остаться только записи, в которых выполнены оба требования.
Найдите повторяющийся узел, который представляет одну товарную запись, и откройте его настройки. Выберите применение условий к элементу целиком, затем проверьте своё поле кода поставщика на непустое значение, а своё поле штрихкода — по выражению ^\d{13}$.
Как сделать в Eofferix
В XML-снапшоте найдите повторяющийся узел, который соответствует одной товарной записи. В учебном XML ниже это
product.
В примере выбран узел product. В своём XML выберите повторяющийся узел одной записи, даже если он называется offer, item, position или иначе. Соотнесите узлы примера с соответствующими узлами или атрибутами своего XML. Переименовывать узлы исходного XML под пример не нужно.
Названия в статье — только пример.product,supplierCodeиgtinне являются обязательными именами Eofferix. Используйте реальные пути из своего XML.В примере статьи В вашем XML productПовторяющийся элемент одной записи: например, offer,item,positionили другое имя.supplierCodeПоле кода поставщика: например, vendorCode,sku,articleили соответствующий атрибут.gtinПоле штрихкода: например, barcode,ean,gtinили соответствующий атрибут.Откройте настройки повторяющегося узла, раскройте «Условия выгрузки» и выберите «Для элемента целиком». Добавьте два условия:
- ваше поле кода поставщика — «До преобразований» → «не пустое»;
- ваше поле штрихкода — «До преобразований» → «регулярное выражение» →
^\d{13}$.

Красной рамкой выделен весь блок: проверка supplierCode, проверка gtin и применение к элементу целиком. Эти имена относятся только к XML-примеру. Проверьте несколько записей через «Другие значения» или предпросмотр. Условия работают вместе: если хотя бы одно не выполнено, повторяющийся элемент исключается целиком.
Нажмите «Сохранить» в настройках узла, сохраните шаблон и перейдите к преобразованию. После запуска проверьте готовый XML, а не только снапшот.
Что проверяет регулярное выражение
^\d{13}$ означает: от начала до конца значения должны идти ровно 13 цифр.
- Подходит:
4006381333931. - Не подходит:
bad-code,12345678и400-638-1333931. - В показанной настройке оба условия выполняются «До преобразований», поэтому проверяются исходные значения выбранных полей. Если измените момент проверки, обязательно перепроверьте результат в предпросмотре.
Было / стало
В примере названия 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>