span8
span4
通常,使用FME读取XML是使用预定义的XML配置文件来读取特定的XML格式,或者使用FME的XML阅读器来读取XML功能路径。其他读取方法包括使用XQuery和其他XML处理转换器的XfMaps或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是高级方法,配置起来要困难得多。功能路径识别用于特征提取的元素标记。这种方法还包括一个选项,可以将嵌套的元素平铺到父元素中。子属性名使它们更容易在关系结构中使用。
其他选项包括使用XQueries,它类似于用于XML的SQL,并构成用于查询和修改XML数据集的XML表达式。XFmaps是专用脚本,用于定义数据结构的属性和几何组件。您还可以将文本文件或XML阅读器与我们为XML处理提供的各种XML转换器(如xml扁器、XMLUpdater、XMLFeatureMapper、XMLFragmenter和XQueryExtractor)结合使用。现在,我们只关注特性路径模式下的XML阅读器。
对于那些对XML和脚本有更多了解的读者,有很多关于XQuery、XfMaps和XML处理的文章。
特性路径和平坦化有助于将任何XML元素转换为FME特性。特性路径通过定义XML结构(节点或元素)中切片或提取特性的点来查询XML。展平允许将选定XML元素中的嵌套结构转换为parent.child格式的字段。可以存储父ID以支持功能之间的关联。所以现在几乎任何XML都可以读取,而无需使用xfmaps或其他脚本。
在下面的练习中,我们将看到如何将XML元素读取为记录并将其成员元素展平为属性。我们还将了解如何提取几何图形。
1)开放数据检查员
2)点击文件|打开数据集,然后选择XML格式。
输入url作为“数据集”:http://www.drivebc.ca/api/events/district/mainlan。。。
三)点击读卡器参数。
设置configuration type=“功能路径”。
在“要匹配的元素”下,指定要生成要素类型的节点。
图1。配置类型=特征路径
FME有一个新的树控件,允许您浏览要匹配的元素。只需单击三角形即可打开感兴趣的树节点,然后仅检查要成为要素类型的那些节点。在这种情况下,打开rss/频道,然后选择“项目”。注意,我们也可以只键入“item”。只有当您要匹配的元素类型出现在数据集中的不同级别时,完整路径才很重要。还要注意,我们只检查要成为特征类型的元素。我们不检查rss或频道,因为这将创建非常大的功能-例如。每个数据集或要素类型一个要素。
图2。选择要匹配的元素
单击“确定”,FME将扫描数据并基于XML在要素路径中指定的节点处的展平创建要素类型。注意,您不需要XML模式doc或XSD来读取XML。虽然我们可以使用它进行验证,而且它对于解释GML很有用,但对于大多数XML来说,它通常不够规范,无法定义精确的解释。
图3。在数据检查器中查看的XML
在下面的练习中,我们将了解如何将XML元素读取为记录,然后提取几何图形。
1)打开FME工作台。
2)添加XML读取器对数据集使用上述方法:http://www.drivebc.ca/api/events/district/land?格式=rss和要匹配的元素=“rss/channel/item”。项目源功能类型将添加到您的工作区。
3)增加一个垂直排泄器转换并将其输入连接到项源功能类型。分别将X、Y值设置为long、lat。
图4。从长纬度值创建顶点。
4)增加一个协调系统控制器将坐标系设置为EPSG:4326,然后使用地理缓冲器将点缓冲1km。将此输出连接到检查器。你的工作区现在应该是这样的。
5)添加KML编写器
添加KML编写器。将格式设置为KML并选择要将KML文件写入的位置。
6)添加KMLPropertySetter
为名称设置“category”,为摘要设置“description”-这些将显示在Google Earth导航树中。我们还将使用“描述”作为KML气球的内容。
7)添加KMLStyler
更改点图标样式。在KMLStyler属性中,展开图标部分并选择E5图标。现在将KMLStyler连接到目标要素类型。
8)清理属性
打开KML功能类型的属性,单击“用户属性”选项卡,然后删除从源中复制的前缀为“xml”的属性。
9)运行工作区。
双击输出KML文件以在Google Earth中查看结果。
祝贺 你!现在,您已经从web上读取了实时XML数据,将其解析为要素,并为它们生成了地理参考几何图形。现在,只需添加适当的writer(在本例中我们使用了KML)并将源功能类型复制到目标,就可以将其输出为您选择的任何格式。
©2019安全亚搏在线软件公司法律