span8
span4
多数情况下,使用FME读取XML,为特定的XML格式使用预定义的XML配置文件,或者FME的XML阅读器功能路径。其他阅读方法包括XfMaps,或者使用XQuery和其他XML处理转换器的FME文本文件阅读器。这些方法被认为是高级的,并在其他文章中讨论。在本文中,我们将重点讨论特性路径。
首先要检查的是,FME中是否已经支持您试图读取的数据作为特定的XML格式或概要文件。对于经常使用的XML概要文件,这些文件通常被实现为它们自己的FME格式阅读器和写入器。FME支持40多种不同的XML格式。使用这些格式总是比配置通用XML阅读器/写入器容易。FME支持的XML格式包括:Open Street Map (OSM),谷歌KML,GPX,RSS,例如LandXML和GML。要查看完整的列表,只需打开reader或writer gallery并在搜索字段中键入“XML”即可。
要使用XML阅读器,首先需要设置配置类型,它告诉FME如何将XML映射到特性属性和几何图形。默认情况下,设置为特征路径。XFMaps和XRS是高级的方法,配置起来要困难得多。功能路径标识用于特征提取的元素标记。这种方法还包括一个选项,可以将嵌套元素展平到parent.child属性名中,从而使它们更易于在关系结构中使用。
其他选项包括使用XQueries,它们类似于XML的SQL,构成用于查询和修改XML数据集的XML表达式。XFmaps是专门的脚本,用于定义数据结构的属性和几何组件。您还可以将文本文件或XML阅读器与我们为XML处理提供的各种XML转换器结合使用,如xml扁平器、xmlupdate,XMLFeatureMapper,XMLFragmenter,和XQueryExtractor。就目前而言,我们将只关注特性路径模式下的XML阅读器。
对于那些有XML和脚本编程背景的人,关于XQuery有很多文章,XfMaps,和XML处理。
特性路径和扁平化有助于将任何XML元素转换为FME特性。特性路径通过定义XML结构(节点或元素)中用于切片或提取特性的点来查询XML。扁平化允许以parent.child的形式将所选XML元素中的嵌套结构转换为字段。可以存储父id来支持特性之间的关联。因此,现在几乎可以读取任何XML,而不需要使用xfmap或其他脚本。
在下面的练习中,我们将看到如何将XML元素读取为记录并将其成员元素平展为属性。我们还将看到如何提取几何图形。
1)打开数据检查器
2)点击文件|打开数据集,并选择XML格式。
对于数据集,输入网址:http://www.drivebc.ca/api/events/district/mainlan..。
3)单击阅读器参数。
设置配置类型= "功能路径"。
在“要匹配的元素”下,指定要生成特性类型的节点。
图1所示。配置特征路径
FME有一个新的树控件,允许您浏览要匹配的元素。只需单击三角形以打开感兴趣的树节点,然后只检查希望成为特性类型的节点。在本例中,打开rss/channel,然后选择“item”。注意,我们也可以只输入“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。创建顶点从长,拉特值。
4)添加一个CoordinateSystemSetter设坐标系为EPSG:4326,然后用一个地理缓冲器将这些点缓冲1km。将此输出连接到检查器。您的工作区现在应该是这样的。
5)添加KML写入器
添加KML写入器。将格式设置为KML,并选择要将KML文件写入的位置。
6)添加KMLPropertySetter
设置“类别”的名称和“描述”的摘要-这些将出现在谷歌地球导航树。我们还将对KML气球内容使用“description”。
7)添加KMLStyler
更改点图标样式。在KMLStyler属性中,展开图标部分并选择E5图标。现在将KMLStyler连接到目标特性类型。
8)清理属性
打开KML特性类型的属性,单击User Attributes选项卡,并删除从源文件中复制的以“xml”为前缀的属性。
9)运行工作区。
双击输出KML文件以查看谷歌Earth中的结果。
恭喜你!您现在已经从web上读取了实时XML数据,将其解析为特征并为其生成地理参考几何图形。现在,只需添加适当的写入器(本例中使用了KML)并将源特性类型复制到目标,就可以将其写入到您选择的任何格式。
©2019安全亚搏在线软件公司|法律