Exemple : Remplacer les titres de tâche
Cet exemple vous montre comment remplacer des valeurs d'éléments spécifiques dans un fichier XML à l'aide de composants Value-Map (c'est à dire, en utilisant une table de consultation prédéfinie).
Le fichier XML nécessaire pour cet exemple est disponible dans le chemin suivant : <Documents>\Altova\MapForce2025\MapForceExamples\Tutorial\ MFCompany.xml. Il stocke, entre autres données, des informations concernant les employés de l'entreprise et leurs titres de poste, par exemple :
<Person> <Person> |
Partons du principe que vous souhaitez remplacer certains des titres de poste dans le fichier XML ci-dessus. En particulier, le titre "Software Engineer" doit être remplacé par "Code Magician". De même, le titre "Support Engineer" doit être remplacé par "Support Magician". Les autres titres de poste ne doivent pas être modifiés.
Pour atteindre cet objectif, ajouter le fichier XML à la surface de mappage, en cliquant sur la touche de la barre d'outils Insérer Schéma/Fichier XML ou en exécutant la commande de menu Insérer | Schéma/Fichier XML. Ensuite, copier-coller le composant XML dans le mappage et créer les connexions comme indiqué ci-dessous. Veuillez noter que vous devrez éventuellement tout d'abord désactiver l'option dans la barre d'outils Basculer l'auto-connexion des enfants, pour pouvoir éviter l'établissement automatique de connexions inutiles.
Le mappage créé jusqu'à présent copie les éléments Person dans le fichier cible XML, sans effectuer de modifications dans les éléments First, Last et Title.
Pour remplacer les titres de postes requis, ajoutons un composant Value-Map. Cliquer avec la touche de droite sur la connexion entre les deux éléments Title, et choisir Insérer Value-Map depuis le menu contextuel. Configurer les propriétés Value-Map comme indiqué ci-dessous :
Conformément à la configuration ci-dessus, chaque occurrence de "Software Engineer" sera remplacée par "Code Magician", et chaque occurrence de "Support Engineer" sera remplacée par "Support Magician". Veuillez noter que la condition Otherwise n'est pas encore spécifiée. C'est pour cette raison que Value-Map retourne un nœud vide à chaque fois que le titre de poste est différent de "Software Engineer" et de "Support Engineer". Par conséquent, si vous cliquez sur l'onglet Sortie et que vous consultez le mappage, certains des éléments Person auront un titre manquant Title, par exemple :
<Person> <Person> <Title>Code Magician</Title> |
Comme indiqué auparavant, des nœuds vides entraînent des entrées manquantes dans la sortie générée ; c'est pourquoi, dans le fragment XML ci-dessus, seul le titre de Michelle Butler a été remplacé, étant donné que son titre était présent dans la table de consultation. La configuration créée jusqu'à présent ne remplit toujours pas l'exigence originale. La configuration correcte est la suivante :
Avec la configuration ci-dessus, la chose suivante se produit au moment de l'exécution :
•Chaque occurrence de "Software Engineer" sera remplacée par "Code Magician"
•Chaque occurrence de "Support Engineer" sera remplacée par "Support Magician"
•Si le titre original ne se trouve pas dans la table de consultation, le Value-Map le retournera sans le modifier.
À seul titre illustratif, nous pouvons aussi changer tous les titres de poste différents de "Software Engineer" et de "Support Engineer" en une valeur personnalisée, par exemple "N/A". Pour ce faire, définir les propriétés Value-Map comme indiqué ci-dessous :
Maintenant, lorsque vous consultez le mappage, chaque titre de poste est présent dans la sortie, mais ceux qui n'avaient pas de correspondance auront la valeur "N/A", par exemple :
<Person> |
Cela complète l'exemple Value-Map. En appliquant la logique ci-dessus, vous pouvez obtenir le résultat désiré dans d'autres mappages.