ListSearcher
Searches a list to find a value and returns the index of the value in the list.
Output Ports
An element in the list matched. The output feature will return the index of the found element in the index attribute specified.
If the element is not found in the input feature, the feature will be output via this port and no index attribute will be applied.
Parameters
The name of the list to search. The list name should contain a pair of braces {}.
The string or regular expression to search in the list.
If the Index Attribute is specified and the search string is found, an attribute with the specified name will be added to the output feature containing the index of the found element.
This parameter determines how the list will be searched.
Parameter Choice | Description |
---|---|
First Exact Match |
Searches for an exact match. |
First regular expression match |
Uses a regular expression to search for a first matching entry in the list. Advanced Regular Expressions (AREs) are supported. Search the FME Functions and Factories for a complete description of AREs. In brief, an ARE is one or more branches, separated by `|', matching anything that matches any of the branches. |
First not matching |
Returns the index of the first non-matched entry in the list. |
First less than, |
Searches for the first element in the list that satisfies the criteria. Numerical comparisons are used if both the list element and the search value can be converted to floating point numbers; otherwise, string comparisons are used |
If checked, the contents of the found element will be copied to the main attribute(s) of the output feature. This saves adding a ListIndexer after the searcher to demote the list element.
Note that any list element attributes that start with fme_ will not be copied (for example, fme_type) unless you specify a Copied Attribute Prefix.
The prefix that should be added to any attribute(s) copied onto the output feature.
Example
For example, if this feature enters the transformer:
somelist{0}.length = 7.3
somelist{0}.kind = ’paved’
somelist{1}.length = 8.4
somelist{1}.kind = ’smooth’
somelist{1}.lanes = 2
somelist{2}.length = 1.1
somelist{2}.kind = ’rough’
and the somelist{}.kind list attribute is searched for the value smooth, then the index attribute would be set to 1.
Additional Resources
Test regular expressions with Rubular, a Ruby-based regular expression editor.
Editing Transformer Parameters
Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.
Transformer Categories
Technical History
Associated FME function or factory: @SearchList
Search FME Community
Search for samples and information about this transformer on the FME Community.