斯潘8
斯潘4
在本教程中,我们将阅读并检查一些XML数据。更具体地说,我们将研究如何使用特征路径和扁平化来读取XML构建文件。这个简单的XML描述了一个构建特性。大楼有地址和位置细节,里面有房间,房间里有墙。我们将使用Workbench演示如何使用特性路径和展平。
读卡器配置有3种配置类型。xfmap或xrs文件仅代表高级用户的脚本化配置文件,所以,让我们集中讨论特性路径配置。为了读取任何给定的XML文档,您需要告诉FME您想要转换成FME特性的元素。这是通过定义我们称之为特征路径来实现的,或者从文档根到要提取的对象的节点路径。特征路径的形式为:根/父/对象,其中对象是我们要提取为特征的元素。您也可以通过使用节点名来定义一个特性路径,只要它在数据集中是唯一的,并且不会出现在结构中的不同位置。所以我们可以使用对象来代替根/父/对象。此功能路径存储在元素中以匹配参数。
幸运的是,现在有了一个新的树控件来帮助自动定义特征路径。这就消除了许多关于如何读取新的XML数据集的猜测工作。关键是只选择要成为要素类型的节点。你不需要选择它的子项,除非希望它们成为单独的特征类型。
要读取附加的建筑XML文件,遵循以下步骤:
XML读取器参数:在元素中设置要匹配的功能路径
三。FME将添加一个新的XML阅读器和新的建筑源功能类型。单击建筑特征类型名称旁边的箭头以查看其模式。应如下所示:
FME已经从构建元素的角度读取了XML,所以属性列表反映了它下面的XML元素。该建筑包含自己的属性,如地址和ID,它还包含子元素,如房间和墙壁。任何包含自己子元素的元素,以parent.child[突出显示位置、纬度和位置、经度]的形式命名。如果一个子元素有多个实例,像房间一样,它们以列表属性的形式存在。最后,当子元素包含自己的子元素时,它们以嵌入列表属性的形式存在。如果我们想和他们合作,我们会用变形金刚列表来完成。
4。让我们再次阅读这个XML文档,这次将房间元素作为单独的功能类型读取。请注意,我们也可以同时选择建筑物和房间,使用同一个XML阅读器来读取它们——任何一种方式都可以。结果是这里显示的房间特征类型:
请注意,XML现在是从room和下面的角度读取的。没有可见的建筑层元素。要链接这两者,您需要链接室友身份证从存储在建筑特征上的关联房间.id列表元素的房间特征。
5。现在让我们看看在数据检查器中查看时实际的XML数据是什么样子的。将建筑和房间特征类型连接到检查器并运行工作区。您应该看到以下输出:
请注意,只有一个建筑特征,但有三个房间特征。还要注意,建筑物包含房间列表和墙列表,而房间仅包含墙列表。最后请注意,大楼有0.id=admin房间,与室友身份证=行政室。
祝贺您-您已经阅读了一个XML文件并从中生成了FME特性。正如你所看到的,有多种方法可以使用FME读取相同的XML源数据。你如何阅读它取决于你需要从中得到什么,以及什么视角最有用。我们可以从数据集的角度来读取所有内容,但是,在您可以对这些特性做任何有用的事情之前,您将有许多嵌套的列表要分解掉。
?2019安全亚搏在线软件公司|合法的