仅供参考@krostir:我刚刚上传了一个自定义变压器到FME中心,实现了上述更通用/优雅的方式。检查ListKeyValuePairExtractor!
有多种方法可以做到这一点,但我将选择PythonCaller,因为这是最干净的选择。您将不得不以某种方式公开属性,因为FME需要知道它必须写出什么。我选择在PythonCaller中也这样做,因为数据的模式似乎是固定的。
看看我的解决方案附件。您现在可以在自动模式下简单地将Shapefile写入器添加到其中,但是要注意,属性名对于Shapefile来说太长了,可能会被截断。
如果你没有FME 2017,这是Python代码,你可以粘贴在PythonCaller。确保将“Class或Function to Process Data”的值设置为“processKmlData”,以便调用feature函数。
进口fme进口fmeobjects def processKmlData(特性):名称= feature.getAttribute (“kml_data {} . name”)值= feature.getAttribute (“kml_data {} value”)如果不是(isinstance(名字,列表)和isinstance(值,列表)):返回num_attributes = len(名字)如果num_attributes ! = len(值):换取我的范围(num_attributes):功能。[我]setAttribute(名称,值[我])