Fermer

mai 17, 2021

Boucler des balises XML simples à l'aide du tXMLMap dans Talend


A êtes-vous à la recherche de «Comment faire une boucle dans des fichiers XML»? Alors oui, vous êtes au bon endroit pour obtenir plus d'informations sur la façon de récupérer des données à partir de fichiers XML avec plusieurs balises à traiter / transformer en utilisant l'un des composants avancés de Talend studio appelé tXMLMap Component.

Avant d'entrer dans le concept réel de ce blog, nous avons besoin de connaissances de base sur le tXMLMap et ses utilisations. Contrairement à tMap, nous ne pourrons pas donner le schéma à la source d'entrée dans le tXMLMap, afin de donner un schéma à de tels types de source, nous ont un type de données merveilleux connu sous le nom de Type de document .
tXMLMap
principalement utilisé pour transformer et acheminer des données de sources uniques ou multiples vers des destinations uniques ou multiples. Parfois, il est également utilisé pour le processus de demande de réponse ESB.

Dans ce blog, nous allons voir comment nous pouvons transformer / traiter le fichier XML avec plusieurs balises et comment configurer le tXMLMap sans le schéma réel du fichier et aussi différents types de techniques de bouclage.

Il existe principalement deux manières d'écrire du contenu dans des fichiers XML. En fonction de la manière d'écrire le contenu dans le fichier, nous avons deux types de techniques de bouclage. Ce sont:
1. Élément à boucle unique
2. Éléments de boucle multiples

 Data Intelligence - L'avenir du Big Data
L'avenir du Big Data

Avec quelques conseils, vous pouvez créer une plate-forme de données adaptée aux besoins de votre organisation et tirer le meilleur parti de vos données capital.

Obtenir le guide

Nous allons discuter de l'élément à boucle unique dans les prochaines secondes avec un exemple de fichier d'entrée.

Élément à boucle unique:
Dans l'ordre pour illustrer ce concept, j'ai créé un exemple de fichier comme ci-dessous. Ce fichier contient les informations de base relatives à l'entreprise et à son employé. Nous avons la balise principale nommée XMLINFO et cela couvre les données XML complètes. La balise enfant de la balise parent principale est COMPANY qui agit à la fois comme balise enfant et parent.

Les enfants de COMPANY sont COMPANYDETAILS et EMPLOYEEDETAILS qui ont des enfants correspondants, comme indiqué dans l'image ci-dessous. Ainsi, nous avons les détails de 3 entreprises avec leur employé individuel.
 Fichier d'entrée à boucle unique
Schéma à l'intérieur du composant:
Maintenant, je dois charger ces données dans Talend Studio afin de poursuivre le traitement. Pour cela, j'ai inséré le composant tFileInputXML avec le schéma comme type de document Nom de la colonne en tant que société.
 Schéma de composant XML à boucle unique
Et les paramètres du composant incluent la requête de chemin de boucle, l'activation des nœuds et la requête XPath. Si vous devez considérer uniquement des balises particulières du xml d'entrée, en fonction du chemin de balise de l'élément racine, vous devez inclure dans la requête de chemin de boucle.

Si vous voulez inclure le XML complet, vous devez écrire «/» qui signifie répertoire racine. Et vous devez activer l'option GET NODES afin d'obtenir les données des nœuds enfants. Après configuration en fonction de vos besoins, cela ressemblera à ceci:
Configuration des composants:

 Paramètres des composants à boucle unique
Une fois le tFileInputXML configuré avec succès, vous devez insérer le composant tXMLMap et connectez ces deux composants en utilisant la connexion à la ligne principale comme ci-dessous
 Connexion principale à boucle unique Éditeur du tXMLMap:
Voici maintenant l'étape réelle et principale qui consiste à configurer le composant tXMLMap. Maintenant, double-cliquez sur le composant, vous obtiendrez un nouvel éditeur comme suit.
 Paramètres de carte à boucle unique
Ajout de sous-éléments:
Par défaut, l'élément de boucle est sur la colonne racine, mais nous n'avait aucune colonne en tant que racine dans le fichier d'entrée. Donc, je change le nom de la racine en XMLINFO qui est la racine du fichier d'entrée. Pour cela, faites un clic droit sur la racine et cliquez sur l'option de renommer.
Une fois qu'il est renommé, vous devez ajouter les autres balises ici en cliquant sur Créer un sous-élément après un clic droit et entrer le nom approprié basé sur le fichier d'entrée. [19659032] Capture d'écran (6)  » width= »1366″ height= »768″ srcset= »https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?w=1366&ssl=1 1366w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=300%2C169&ssl=1 300w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=1024%2C576&ssl=1 1024w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=768%2C432&ssl=1 768w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=276%2C155&ssl=1 276w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=750%2C422&ssl=1 750w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=600%2C337&ssl=1 600w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=640%2C360&ssl=1 640w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=500%2C281&ssl=1 500w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=800%2C450&ssl=1 800w, https://i2.wp.com/blogs.perficient.com/files/Screenshot-6.png?resize=1280%2C720&ssl=1 1280w » sizes= »(max-width: 1000px) 100vw, 1000px » data-recalc-dims= »1″/>
Schéma XML d'entrée finale:
Comme ça, vous devez créer la structure XML complète dans cet éditeur en utilisant cette option de création de sous-élément. Après avoir créé tous les champs nécessaires, cela ressemblera à ce qui suit
 Single Loop Oncompany
Ici, chaque sous-élément agit comme un élément enfant. Vous avez maintenant configuré avec succès le côté gauche, mais sur le côté droit, vous devez entrer le schéma réel à quoi ressemblent les données et vous devez créer une table de sortie avec les informations dont vous avez besoin. Pour l'instant, pour illustrer, j'ai copié tous les éléments du côté gauche vers le côté droit de la table comme ci-dessous:
 Screenshot (9)
Final Job Design:
Si vous observez le schéma du côté droit section, cela ressemble à un schéma normal comme nous le configurons normalement dans d'autres composants, mais à gauche, nous n'avons que le type de document. Maintenant, j'ai inséré le composant tLogRow pour afficher le contenu dans la console studio elle-même. Et j'ai copié le même schéma dans le composant tLogRow. Maintenant, la conception finale ressemble à
 Travail complet à boucle unique Conception du travail final avec sortie:
Nous en avons terminé avec la connexion et la configuration de tous les composants nécessaires. Nous devons maintenant exécuter le travail. Après avoir exécuté, j'ai obtenu la sortie comme
 Première sortie à boucle unique
Ici, nous avons la sortie comme 1 enregistrement, mais nous avons un total de 3 enregistrements dans le fichier d'entrée. La raison pour laquelle cela se produit est que nous avons conservé l'élément LOOP sur XMLINFO et non sur l'autre. Si nous mentionnons un élément de boucle sur XMLINFO, il recherchera une autre balise XMLINFO et il bouclera à nouveau. Dans notre entrée, nous n'avions pas plusieurs de ces balises. C'est la raison pour laquelle nous n'avons qu'un seul enregistrement.
Final tXMLMap Editor Deisgn:
Maintenant, ce que nous devons faire est de faire un clic droit sur la société et de cliquer sur «AS LOOP ELEMENT». Il demandera un clic pop-up ok. L'élément Loop ira maintenant à Company à partir de XMLINFO. À la fois, vous ne pouvez pas créer plusieurs nœuds parents comme éléments de boucle. Après avoir changé, l'éditeur ressemblera à
 Capture d'écran (10)
Sortie finale:
Maintenant, après avoir changé l'élément de boucle si vous exécutez à nouveau le travail, vous obtiendrez maintenant 3 enregistrements comme suit: [19659050] Sortie finale à boucle unique  » width= »416″ height= »184″ srcset= »https://i0.wp.com/blogs.perficient.com/files/Single_Loop_Final_Output.png?w=416&ssl=1 416w, https://i0.wp.com/blogs.perficient.com/files/Single_Loop_Final_Output.png?resize=300%2C133&ssl=1 300w » sizes= »(max-width: 416px) 100vw, 416px » data-recalc-dims= »1″/>

C'est ainsi que nous devons appliquer un élément de boucle sur le schéma que nous avons développé. Vous obtiendrez une sortie basée sur les éléments de boucle que vous avez mentionnés.

Enfin, voici comment nous devons récupérer les données des fichiers XML s'il s'agit d'un simple contenu de balise XML. Si vous voulez en savoir plus sur les balises XML complexes avec plusieurs balises internes et comment effectuer une boucle, vous pouvez parcourir la deuxième partie de ce blog.

POINT À RETENIR: Nous ne pouvons pas faire à la fois les éléments parents et enfants comme éléments LOOP, mais nous pouvons créer plusieurs éléments enfants comme éléments de boucle, car les deux exemples sont clairement expliqués ci-dessus.

À propos de l'auteur <! -: isubbarao, Consultant technique associé ->

Inti Venkata Subba Rao, travaillant comme consultant technique associé chez Perficient India Pvt Ltd. Expertise dans les technologies Talend et Big Data.

Plus de cet auteur




Source link