替换的原因有很多。比如,错别字的纠正;比如,数据的清洗;再比如,空值的映射。
我们使用FME来完成各种替换,针对单个字符串,可以使用StringReplacer转换器来完成。StringReplacer转换器是一个功能强大的转换器,通过这个转换器,可以很方便的完成各种替换,甚至是将字段值映射为空。曾经在技术交流群里有个朋友提出:要将shp数据所有字段中为空格的值,批量改成空值。针对这个需求,我尝试了以下几种解决方式:
针对这种需求,在没拿到数据的时候,我用Creator转换器造了数据, 首先想到了是StringReplacer转换器,我进行了如下图所示的设置。替换结果是ok的,成功的将空格映射成了字符串:
但实际的数据有多个字段,拿到后进行测试,发现StringReplacer不行,所以我尝试了如下图所示的转换器,结果是ok的:
StringReplacer转换器,适用于单个字段的指定值映射。在进行多个字段替换为指定值的时候没什么问题,但是在正则模式启用分组的情况下,就会出错。NullAttributeMapper转换器,可以完成字段值之间的映射虽然不如StringReplacer转换器那么灵活,但针对映射为null字符转来讲,完全够用了。