AttributeSplitter
将选择的属性拆分为列表属性。列表中的每个项将包含从列表中分离出来的单个令牌。
例如,您可以使用这个转换器将一个属性(该属性具有一个逗号分隔的值列表)分隔为其组件块。
输入端口
包含要分割的属性的特性类型。
输出端口
将所选属性值拆分为列表属性的特性。
参数
连接这个转换器之后,从下拉菜单中选择一个属性。
字符可以表示为常规字符,但也可以包含任意数量的控制字符。
特殊字符序列(仅限高级编辑器)的解释如下:
序列 | 描述 |
---|---|
Ctrl + Shift + h (h ^) |
退格键(0 () |
Ctrl + Shift + l (l ^) |
换页(0 x0c) |
Ctrl + Shift + j (^) |
换行符(0 x0a) |
Ctrl + Shift + r (^) |
回车(0 x0d) |
Ctrl + Shift + i(^我) |
选项卡(0 x09) |
Ctrl + Shift + k (^ k) |
垂直制表符(0 x0b) |
或者,您可以提供格式为#s#s#s的字符串,其中每个数字是希望提取的子字符串的长度,而不是使用分隔符字符。
定义特殊字符
您可以通过基本或高级编辑器定义特殊字符。从参数菜单中点击打开编辑器:
基本的文本编辑器
选择常数从字符串类型列(或,在某些转换器中,值列),然后单击列中的空字段:
单击列右侧的browse按钮,打开编辑值对话框。在这个编辑器中,使用上面表格中的快捷键输入字符。
先进的文本编辑器
使用上表中的快捷方式输入字符。
注意:要查看制表符,单击左下角的选项菜单并选择显示空格/制表符。
默认情况下,结果字符串的开头和结尾(左和右)空格都被删除了,但是您可以将设置更改为左或右,或者不设置。
默认的列表名称是_list,但是您可以将其更改为更具体于您的工作流的名称。亚搏在线
注意:当某个特性具有与之同名的现有列表属性时列表名称时,FME将新创建的元素覆盖到现有列表属性。例如,考虑一个具有属性的特性src与价值观1、2,以及list属性_list与价值观{A, B, C, D}。如果AttributeSplitter分裂src转换为也已命名的list属性_list,结果是一个列表属性_list与价值观{1,2,C, D}。
确定是否保留由分割产生的空部分(或令牌)。默认情况下,所有部分都将返回,不管它们是否为空。如果参数值设置为是的,只会退回非空载零件。
如果将此参数设置为没有,分裂a、b、c、d、e用逗号返回以下列表:
' _list{0}'的值为' a'
' _list{1}'的值为' b'
' _list{2}'有值"
' _list{3}'有值"
' _list{4}'的值为' c'
' _list{5}'的值为' d'
' _list{6}'的值为' e'
如果将此参数设置为是的,分裂a、b、c、d、e用逗号返回以下列表:
' _list{0}'的值为' a'
' _list{1}'的值为' b'
' _list{2}'的值为' c'
' _list{3}'的值为' d'
' _list{4}'的值为' e'
用法说明:访问单个列表元素
列表通常在Workbench中按名称表示,后面跟着一对花括号
mylist {}
一个特定的列表元素包含它在方括号之间的数字:
mylist {0}
列表元素的属性如下所示:
mylist {0} .myattribute
但是,AttributeSplitter生成的列表元素只包含值而不包含属性。
要访问Workbench中的特定列表元素,右键单击属性列表中的列表名称并选择Expose elements。
在出现的对话框中,键入要公开的元素数量。
请记住,列表元素从0开始计数,因此暴露mylist{}的1个元素将导致额外的属性mylist{0}。
例子
如果myattr = A,B,C,分隔符为,
那么结果会是:
mylist {0} =
mylist {1} = B
mylist {2} = C
如果myattr = 20030210,格式字符串是4s2s2s
那么结果会是:
mylist {0} = 2003
mylist {1} = 02
mylist {2} = 10
相关的变形金刚
你也可以用StringSearcher使用正则表达式模式匹配拆分属性值。
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。