Catálogos de proveedores

Cómo conservar solo elementos XML con código de proveedor y código de barras de 13 dígitos

2026-06-29
Tarea

Algunos registros de producto del XML de origen no tienen código de proveedor y otros contienen un código de barras que no tiene exactamente 13 dígitos. El resultado debe conservar solo los registros que cumplan ambos requisitos.

Respuesta corta

Busque el nodo repetido que representa un producto y abra su configuración. Aplique las condiciones al elemento completo, exija que su campo de código de proveedor no esté vacío y compruebe su campo de código de barras con ^\d{13}$.

Cómo hacerlo en Eofferix

  1. En la instantánea XML, busque el nodo repetido que representa un producto. En el XML de ejemplo se llama product.

    El nodo product repetido aparece resaltado con un marco rojo en la instantánea XML de Eofferix
    En el ejemplo se selecciona product. En su XML, seleccione el nodo repetido de un registro aunque se llame offer, item, position o de otra manera.
  2. Relacione los nodos del ejemplo con los nodos o atributos correspondientes de su XML. No es necesario cambiar los nombres de los nodos del XML de origen.

    Los nombres de este artículo son solo ejemplos. product, supplierCode y gtin no son nombres obligatorios de Eofferix. Utilice las rutas reales de su XML.
    En este artículoEn su XML
    productEl elemento repetido de un registro, por ejemplo offer, item, position u otro nombre.
    supplierCodeSu campo de código de proveedor, por ejemplo vendorCode, sku, article o el atributo correspondiente.
    gtinSu campo de código de barras, por ejemplo barcode, ean, gtin o el atributo correspondiente.
  3. Abra la configuración del nodo repetido, despliegue Condiciones de exportación y seleccione Para el elemento completo. Añada dos condiciones:

    • su campo de código de proveedor — Antes de transformacionesno vacío;
    • su campo de código de barras — Antes de transformacionesexpresión regular^\d{13}$.
    Dos condiciones de exportación aplicadas a un elemento XML repetido en Eofferix
    El marco rojo abarca toda la configuración: supplierCode, gtin y Para el elemento completo. Estos nombres solo pertenecen al XML de ejemplo.
  4. Compruebe varios registros con Otros valores o la vista previa. Las condiciones se combinan: si falla una de ellas, se excluye todo el elemento repetido.

  5. Pulse Guardar en la configuración del nodo, guarde la plantilla y continúe con la transformación. Después de ejecutarla, revise el XML final y no solo la instantánea.

Qué comprueba la expresión regular

^\d{13}$ significa que el valor completo, de principio a fin, debe contener exactamente 13 dígitos.

  • Coincide: 4006381333931.
  • No coincide: bad-code, 12345678 ni 400-638-1333931.
  • En la configuración mostrada, ambas condiciones se ejecutan Antes de transformaciones y comprueban los valores de origen. Si cambia el momento de la comprobación, vuelva a verificar el resultado en la vista previa.
Limitación. Esta expresión solo comprueba el formato «exactamente 13 dígitos». No valida el dígito de control EAN-13 ni demuestra que el código de barras sea válido. Si también admite EAN-8 o GTIN-14, configure ese requisito de forma explícita.

Antes / después

Los nombres product, supplierCode y gtin se usan solo en esta demostración. El resultado conserva el único registro que supera ambas comprobaciones.

Antes

datos de origen
<catalog>
  <products>
    <product id="1001">
      <supplierCode>VN-1001</supplierCode>
      <gtin>4006381333931</gtin>
      <name>Lámpara Alba</name>
      <price>24.90</price>
    </product>
    <product id="1002">
      <supplierCode></supplierCode>
      <gtin>4601234567893</gtin>
      <name>Sillón Costa</name>
      <price>139.00</price>
    </product>
    <product id="1003">
      <supplierCode>VN-1003</supplierCode>
      <gtin>bad-code</gtin>
      <name>Estante Norte</name>
      <price>16.40</price>
    </product>
  </products>
</catalog>

Después

resultado
<catalog>
  <products>
    <product id="1001">
      <supplierCode>VN-1001</supplierCode>
      <gtin>4006381333931</gtin>
      <name>Lámpara Alba</name>
      <price>24.90</price>
    </product>
  </products>
</catalog>

Procesa datos más rápido con Eofferix

Crea una cuenta gratis para automatizar catálogos y listas de precios según tus reglas.

Registrarse