span8
span4
通常情况下,FME使用预定义的XML配置文件读取特定XML格式的XML,或者使用FME的XML阅读器读取XML功能路径.其他读取方法包括XfMaps,或者使用XQuery和其他XML处理转换器的FME文本文件读取器。这些方法被认为是高级的,将在其他文章中介绍。在本文中,我们将重点讨论特性路径。
首先要检查的是FME是否已经支持要读取的数据作为特定的XML格式或配置文件。对于经常使用的XML配置文件,它们通常实现为自己的FME格式读取器和写入器。FME支持40多种不同的XML格式。使用这些格式总是比尝试配置通用的XML读写器/写入器更容易。FME支持的XML格式包括:开放街道地图(OSM)、谷歌KML、GPX、RSS、LandXML和GML等等。要查看完整的列表,只需打开读者或作者库,并在搜索字段中输入“XML”。
要使用XML Reader,首先需要设置配置类型,该类型告诉FME如何将XML映射到特性属性和几何图形。默认情况下,它被设置为特性路径。XFMaps和XRS是高级方法,配置起来要困难得多。功能路径确定用于特征提取的元素标记。这种方法还包括一个选项,可以将嵌套的元素平铺到父元素中。子属性名使得它们更容易在关系结构中使用。
其他选项包括使用xquery,它类似于用于XML的SQL,构成用于查询和修改XML数据集的XML表达式。XFmaps是专用脚本,用于定义数据结构的属性和几何组件。还可以将Text File或XML阅读器与我们为XML处理提供的各种XML转换器(如xmlflater、XMLUpdater、XMLFeatureMapper、XMLFragmenter和XQueryExtractor)结合使用。现在,我们将专注于特性路径模式下的XML阅读器。
对于那些在XML和脚本方面有更多背景的人,可以阅读许多关于XQuery、XfMaps和XML处理的文章。
特性路径和扁平化有助于将任何XML元素转换为FME特性。特性路径通过在XML结构(节点或元素)中定义要切片或提取特性的点来查询XML。扁平化允许将所选XML元素中的嵌套结构转换为parent.child形式的字段。父id可以存储以支持特性之间的关联。因此,现在几乎任何XML都可以在不需要xfmap或其他脚本的情况下读取。
在下面的练习中,我们将看到如何将XML元素读取为记录,并将其成员元素扁平化为属性。我们还将看到如何提取几何图形。
1)打开数据检查器
2)点击文件|打开数据集,选择XML格式。
对于数据集,输入url:http://www.drivebc.ca/api/events/district/mainlan..。
3)点击阅读器参数。
设置配置类型= "Feature Paths"。
在“要匹配的元素”下,指定要纳入特性类型的节点。
图1所示。配置类型=特性路径
FME有一个新的树控件,允许您浏览要匹配的元素。只需单击三角形以打开感兴趣的树节点,然后只检查那些您希望成为特征类型的节点。在这种情况下,打开rss/频道,然后选择“项目”。注意,我们也可以输入“item”。只有当您匹配的元素类型出现在数据集的不同级别时,完整路径才重要。还要注意,我们只检查希望成为特性类型的元素。我们不检查rss或频道,因为这将创建非常大的功能-例如,每个数据集或功能类型一个功能。
图2。选择要匹配的元素
点击OK, FME将扫描您的数据,并在特征路径中指定的节点上,基于XML的扁平化创建特征类型。注意,读取XML不需要XML模式文档或XSD。虽然我们可以使用它进行验证,并且它对解释GML很有用,但是对于大多数XML来说,它通常不足以定义一个精确的解释。
图3。在数据检查器中查看的XML
在下面的练习中,我们将看到如何将XML元素读取为记录,然后提取几何图形。
1)打开FME工作台。
2)添加XML阅读器对数据集使用上面的方法:http://www.drivebc.ca/api/events/district/mainland?format=rss和元素匹配= "rss/channel/item"。项目源特性类型将被添加到工作区中。
3)添加一个VertexCreator转换器并将其输入连接到项目源特性类型。分别设置X、Y值为long、lat。
图4。创建顶点从长,lat值。
4)添加一个CoordinateSystemSetter将坐标系统设置为EPSG:4326,然后使用地理缓冲区将这些点缓冲1km。将此输出连接到检查器。您的工作区现在看起来应该是这样的。
5)添加KML Writer
添加KML Writer。将格式设置为KML,并选择要写入KML文件的位置。
6)添加KMLPropertySetter
为名称设置“类别”,为摘要设置“描述”——这些将出现在谷歌地球导航树中。我们还将对KML气球内容使用“描述”。
7)添加KMLStyler
更改点图标样式。在KMLStyler属性中,展开Icon部分并选择E5图标。现在将KMLStyler连接到目标特性类型。
8)清理属性
打开KML特性类型的Properties,单击User Attributes选项卡,并删除从源文件复制的带有“xml”前缀的属性。
9)运行工作区。
双击输出KML文件,查看谷歌Earth中的结果。
恭喜你!现在,您已经从web上读取了实时XML数据,将其解析为特性,并为它们生成了地理参考几何图形。现在,只需添加适当的写入器(在本例中我们使用KML)并将源特性类型复制到目标,就可以将其写成您选择的任何格式。
©2019 S亚搏在线afe Software Inc |法律