AttributeSplitter
Découpe les valeurs d'un attribut en sa basant sur un délimiteur ou une largeur déterminée puis crée un attribut de liste contenant un élément de liste pour chaque partie.
Utilisations typiques
- Convertir une liste délimitée de valeurs en un attribut de liste FME
- Extraire une partie de la valeur d'un attribut basée sur un texte aligné en colonnes avec une structure connue
Comment fonctionne-t-il ?
Une fois connecté à un flux d'entités d'entrée, AttributeSplitter vous permet de sélectionner un attribut à découper. La valeur de cet attribut est divisée en parties en fonction des sélections de paramètres, et les résultats sont ajoutés à un nouvel attribut de liste.
Le fractionnement peut être effectué à l'aide d'un délimiteur (par exemple, une liste de valeurs séparées par des virgules) ou en fournissant une chaîne de format qui identifie la largeur de chaque partie dans un morceau de texte aligné en colonne. Dans le cas d'une liste délimitée, le nombre de parties de la valeur peut être variable. Dans le cas d'une division à largeur fixe, les parties seront extraites exactement selon la chaîne de format fournie.
Les espaces peuvent être supprimés des valeurs résultats, et les éléments vides - parties sans valeur résultat - peuvent être supprimés ou conservés.
Les nouveaux attributs de liste peuvent être utilisés avec d'autres Transformers basés sur des listes. Vous pouvez également exposer des éléments de liste spécifiques pour qu'ils soient utilisés comme attributs individuels (voir l'exemple ci-dessous).
Exemples
Dans cet exemple, nous avons un jeu de données d'arbres alimentaires. Pour chaque emplacement, il peut y avoir un nombre quelconque d'arbres individuels, et les noms des variétés sont stockés dans l'attribut FOOD_TREE_VARIETIES. Les noms des variétés sont séparés par des points-virgules - ";".
Nous allons découper cet attribut en attribut de liste pour les traiter plus tard dans notre projet.
Le jeu de données d'arbres est dirigé dans un AttributeSplitter où un nouvel attribut de liste - Varieties{} - est créé.
Dans la boîte de dialogue des paramètres, nous sélectionnons le nom de l'attribut et définissons la manière dont la séparation doit être effectuée. Le délimiteur ou la chaîne de format est défini sur ; (point-virgule), tout espace blanc sera supprimé, toute partie vide sera abandonnée et le nouvel attribut de liste est nommé Variétés.
En inspectant les résultats dans Data Inspector, l'attribut FOOD_TREE_VARIETIES a été découpé en plusieurs parties et celles-ci ont été ajoutées en tant qu'éléments individuels dans un nouvel attribut de liste.
Dans cet exemple, nous avons un fichier de forme contenant des points d'intérêt, avec des adresses postales incluses comme un seul attribut. Les parties des adresses sont séparées par des virgules.
Contrairement au premier exemple (avec un nombre variable de types d'arbres), nous savons de combien de parties ces attributs se composent.
Dans la boîte de dialogue des paramètres, le délimiteur est défini comme une virgule (,), nous allons couper les espaces blancs et créer un nouvel attribut de liste appelé Adresse. Notez que l'option Supprimer les éléments vides est réglée sur Non - si une partie de l'adresse est manquante, la suppression de cette partie entraînerait l'insertion des autres parties dans le mauvais élément de liste.
Une fois l'AttributeSplitter configuré, la liste Address{} est maintenant disponible dans la sortie du Transformer. Un clic droit (menu contextuel) sur le nom de la liste, et nous pouvons exposer les éléments de la liste.
Les éléments de liste sont numérotés en commençant par zéro (0). Dans la boîte de dialogue Sélection Eléments de liste, la saisie de la plage 0-3 permet d'afficher les quatre éléments de liste qui composent l'adresse.
Avec ces éléments de liste accessibles et exposés, un AttributeManager est utilisé pour les renommer selon leur contenu.
Les entités en sortie ont maintenant des attributs individuels de composants d'adresses.
Dans cet exemple, nous avons un jeu de données d'incidents criminels. L'attribut DATETIME contient une chaîne de caractères composée d'informations sur la date et l'heure, que nous voulons diviser en ses composants.
Les entités sont acheminées dans un AttributeSplitter. Dans la boîte de dialogue des paramètres, nous utilisons une chaîne de format pour diviser l'attribut à des positions de caractères définies. La chaîne de format utilise un format #s#s#s - des nombres entiers définissant la largeur de chaque partie, séparés par un caractère "s".
Après avoir exposé tous les éléments de liste, un AttributeManager les renomme et ils sont disponibles en tant qu'attributs.
Notes
- Les listes sont indiquées dans Workbench par leur nom suivi d'une paire d'accolades maListe{}..
Un élément de liste spécifique contient son numéro entre les accolades - maListe{0} - Pour accéder à des éléments d'une liste, faites un clic droit sur le nom de la liste dans l'attribut de liste et choisissez Exposer les éléments.
- Pour plus d'informations sur comment travailler avec des listes, consultez List Attributes.
- Pour découper les attributs en utilisant une expression régulière, considérez plutôt l'utilisation de StringSearcher.
Configuration
Ports d'entrée
Les entités avec des attributs à découper.
Ports de sortie
Entités avec la valeur d'attribut découpée en liste.
Paramètres
Attribut à découper | Après avoir connecté ce Transformer à un flux d'entités en entrée, choisissez un attribut depuis la liste déroulante. |
Délimiteur ou chaîne de formatage : |
Si Délimiteur : saisissez le caractère utilisé comme délimiteur. Les caractères spéciaux peuvent être saisis à l'aide de l'éditeur de texte à partir du menu déroulant. Si Chaîne de formatage (valeur fixe) : fournissez une chaîne de caractères au format #s#s#s où chaque nombre est la longueur de la sous-chaîne que vous souhaitez extraire. |
Supprimer les espaces | Par défaut, les chaînes résultantes ont en tête et en fin (gauche et droite) des espaces qui ont été supprimés mais vous pouvez modifier ces paramètres à droite, à gauche ou aucun. |
Liste | Entrez un nom pour le nouvel attribut de liste. |
Supprimer les éléments vides |
Détermine si l'on doit conserver les pièces vides résultant du fractionnement. Par défaut, toutes les parties seront retournées, qu'elles soient vides ou non. Si ce paramètre vaut Oui, seules les parties non vides sont retournées. Si ce paramètre vaut Non, le découpage de a,b,,,c,d,e avec les virgules retournera la liste suivantes : `_list{0}' a la valeur `a' `_list{1}' a la valeur `b' `_list{2}' a la valeur`' `_list{3}' a la valeur`' `_list{4}' a la valeur `c' `_list{5}' a la valeur `d' `_list{6}' a la valeur `e' Si ce paramètre vaut Oui, le découpage de a,b,,,c,d,e avec les virgules retournera la liste suivante : `_list{0}' a la valeur `a' `_list{1}' a la valeur `b' `_list{2}' a la valeur `c' `_list{3}' a la valeur `d' `_list{4}' a la valeur `e' |
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments du traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres d'espace de travail. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au projet peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
Références
Comportement |
|
Stockage des entités |
Non |
Dépendances | Aucun |
Alias | |
Historique |
FME Community
FME Community iest l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Rechercher tous les résultats sur ce Transformer sur FME Community.
Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.