From XML
Parse une colonne contenant du XML et en extrait des champs en colonnes typées, via XPath.
Le besoin vient des XML embarqués : la pièce jointe Factur-X d'un PDF arrive dans une colonne, pas dans un fichier. La Source fichier en format XML ne sait lire que des fichiers.
Paramètres
| Paramètre | Défaut | Description |
|---|---|---|
column | content | Colonne contenant le XML (content en sortie de la source fichier en PDF). |
ignore_namespaces | true | Retire les préfixes d'espace de noms avant extraction. |
fields | [] | Un champ par colonne produite : XPath, nom de colonne, type. |
multiple_separator | | | Séparateur quand un champ retient plusieurs valeurs. |
drop_source | false | Supprimer la colonne source après extraction. |
on_error | fail | fail (arrêt) ou continue (ligne vide + colonne d'erreur). |
error_column | xml_error | Renseignée en mode continue. |
Espaces de noms
Les formats de facture électronique — Factur-X, ZUGFeRD, Order-X — reposent sur
CII, très chargé en espaces de noms. Avec ignore_namespaces actif, l'XPath
s'écrit //GrandTotalAmount au lieu de
//rsm:SupplyChainTradeTransaction/ram:....
Si vous devez les conserver, désactivez l'option et utilisez local-name() :
//*[local-name()='GrandTotalAmount'].
Exemple : facture Factur-X
| XPath | Colonne | Type |
|---|---|---|
//ExchangedDocument/ID | numero | Texte |
//SellerTradeParty/Name | fournisseur | Texte |
//LineTotalAmount | total_ht | Nombre |
//TaxTotalAmount | tva | Nombre |
//GrandTotalAmount | total_ttc | Nombre |
Les montants sortant en colonnes numériques, la vérification arithmétique
total_ht + tva == total_ttc se fait ensuite avec
Qualité.
Une ligne dont la colonne source est vide — un PDF scanné dans un lot qui contient aussi des Factur-X — produit des colonnes vides sans erreur. Inutile de filtrer en amont.
Les expressions sont compilées avant le parcours des lignes : une faute de syntaxe remonte immédiatement comme erreur de configuration, et non comme un décompte de lignes illisibles.