Some product records in the source XML have no supplier code, while others have a barcode that is not exactly 13 digits long. The result should keep only records that meet both requirements.
Find the repeated node that represents one product record and open its settings. Apply the conditions to the whole element, require your supplier-code field to be non-empty, and check your barcode field with ^\d{13}$.
How to do it in Eofferix
In the XML snapshot, find the repeated node that represents one product record. In the sample XML below, this node is named
product.
The example selects product. In your XML, select the repeated node for one record even if it is named offer, item, position, or something else. Map the sample nodes to the corresponding nodes or attributes in your XML. You do not need to rename nodes in the source XML to match the example.
The names in this article are examples only.product,supplierCode, andgtinare not required Eofferix names. Use the real paths from your XML.In this article In your XML productThe repeated element for one record, such as offer,item,position, or another name.supplierCodeYour supplier-code field, such as vendorCode,sku,article, or the corresponding attribute.gtinYour barcode field, such as barcode,ean,gtin, or the corresponding attribute.Open the repeated node settings, expand Export conditions, and select For the whole element. Add two conditions:
- your supplier-code field — Before transformations → not empty;
- your barcode field — Before transformations → regular expression →
^\d{13}$.

The red frame covers the complete setup: supplierCode, gtin, and For the whole element. These field names belong only to the sample XML. Check several records with Other values or the preview. The conditions work together: if either condition fails, the entire repeated element is excluded.
Click Save in the node settings, save the template, and continue to the transformation. After running it, inspect the finished XML rather than relying only on the snapshot.
What the regular expression checks
^\d{13}$ means that the entire value, from start to finish, must contain exactly 13 digits.
- Matches:
4006381333931. - Does not match:
bad-code,12345678, or400-638-1333931. - In the configuration shown, both conditions run Before transformations and therefore check the source field values. If you change the phase, verify the result again in the preview.
Before / after
The names product, supplierCode, and gtin are used only for this demonstration. The result keeps the one record that passes both checks.
Before
source data<catalog>
<products>
<product id="1001">
<supplierCode>VN-1001</supplierCode>
<gtin>4006381333931</gtin>
<name>Hudson lamp</name>
<price>24.90</price>
</product>
<product id="1002">
<supplierCode></supplierCode>
<gtin>4601234567893</gtin>
<name>Parker chair</name>
<price>139.00</price>
</product>
<product id="1003">
<supplierCode>VN-1003</supplierCode>
<gtin>bad-code</gtin>
<name>Harbor shelf</name>
<price>16.40</price>
</product>
</products>
</catalog>After
result<catalog>
<products>
<product id="1001">
<supplierCode>VN-1001</supplierCode>
<gtin>4006381333931</gtin>
<name>Hudson lamp</name>
<price>24.90</price>
</product>
</products>
</catalog>