Restructurer des données produit à l'aide de différents éléments répétables - 7.1

tXMLMap

author
Talend Documentation Team
EnrichVersion
7.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Processing (Intégration) > tXMLMap
Gouvernance de données > Systèmes tiers > Composants Processing (Intégration) > tXMLMap
Qualité et préparation de données > Systèmes tiers > Composants Processing (Intégration) > tXMLMap
EnrichPlatform
Studio Talend

Ce scénario utilise un Job à quatre composants pour restructurer les données produit fournies par un fichier XML source, ProductsIn.xml à l'aide de différents éléments répétables (loop element).

Pour plus d'informations concernant les technologies supportées par Talend, consultez Composants Talend.

Les quatre composants utilisés sont :

  • un tFileInputXML : lit les données produit source et les passe au tXMLMap.

  • un tXMLMap : transforme le flux d'entrée pour lui donner la structure simplifiée attendue.

  • un tLogRow : affiche les résultats d'exécution dans la console.

  • un tFileOutputXML : écrit un flux de sortie dans un fichier XML.

Le contenu du fichier XML source ProductsIn.xml se présente comme suit :

<?xml version="1.0" encoding="ISO-8859-15"?>
<products category="1" name="laptop">

	<!-- Summary -->
	<summary>
		<company>DELL, HP</company>
		<sales unit="Dollars">12345678910.12345</sales>
		<model>business</model>
	</summary>

	<!-- Loop1 manufacture -->
	<manufacture id="manu_1" date="2012-10-30">
		<name>DELL</name>
	</manufacture>
	<manufacture id="manu_2" date="2012-10-28">
		<name>HP</name>
	</manufacture>

	<!-- Loop2 types -->
	<types model="business1">
		<type>DELL123</type>
		<manufacture_id>manu_1</manufacture_id>
	</types>
	<types model="business2">
		<type>HP123</type>
		<manufacture_id>manu_2</manufacture_id>
	</types>

	<!-- Loop3 sale -->
	<sales>
		<sale unit="Dollars" type="DELL123">
			<quater>1</quater>
			<income>12345</income>
		</sale>
		<sale unit="Dollars" type="HP123">
			<quater>1</quater>
			<income>12345.123</income>
		</sale>
	</sales>
</products>

L'objectif de ce scénario est la restructuration de données produit est de simplifier la présentation des informations produit afin de réutiliser le fichier pour la manufacture. Les données attendues se présentent comme suit. L'élément racine est modifié à manufacturers, les informations relatives aux ventes sont consolidées dans l'élément sale et l'élément manufacturer est réduit à un niveau.

<?xml version="1.0" encoding="ISO-8859-15"?>
<manufacturers category="1" name="laptop">
  <sales unit="Dollars">
    <sale sales_type="DELL123">12345.0</sale>
    <sale sales_type="HP123">12345.123</sale>
  </sales>
  <manufacturer id="manu_1" date="03-04-0036" name="DELL"/>
  <manufacturer id="manu_2" date="04-04-0034" name="HP"/>
  <types>
    <type>DELL123</type>
    <manufacturer_id>manu_1</manufacturer_id>
  </types>
  <types>
    <type>DELL123</type>
    <manufacturer_id>manu_2</manufacturer_id>
  </types>
  <types>
    <type>HP123</type>
    <manufacturer_id>manu_1</manufacturer_id>
  </types>
  <types>
    <type>HP123</type>
    <manufacturer_id>manu_2</manufacturer_id>
  </types>
</manufacturers>