斯潘8
斯潘4
快速回顾FME XML术语可能会有所帮助,因为其中有很多是新的:
XQuery是一种脚本语言,用于读取和查询XML以构建属性和记录(与XML读取相关)。xfmap提供了另一种可以用来执行相同功能的方法。
XMLTemplater是一个合并工具,它允许您将FME属性合并到一个XML模板中,以构建XML文本,供文本文件编写器编写(与XML编写相关)。
fme 2010示例用于循环处理将fme特性列表合并到XML模板中。由于我们添加了一个列表函数,所以现在在FME 2011中这要容易得多。所以在2011,现在有四个模板程序函数可用:
get list属性函数将获取一个FME列表,并在函数的位置将所有列表值连接在一起。这减少了在模板中使用for循环代码的需要。
从一些简单的事情开始,然后在它基础上进行构建总是很好的。为此,我将以一个基于xfmaps基本示例的示例数据集为例(如果您已经使用xfmaps阅读XML,那么这是很熟悉的)。请注意,此工作区需要运行FME 2011或更高版本(fme:get-xml-list-attribute(),XMLFormatterXMLvalidator在FME 2011中是新的)。我强烈建议在使用XML时使用FME2011,因为最近有许多增强功能可以帮助您。
此工作区读取示例csv文件并生成具有特定架构的XML文件。它使用一个xmlTemplater构建功能XML,使用另一个xmlTemplater将功能组装到数据集XML中。这是因为层次结构或嵌套的每一个不同级别都需要另一个XMLTemplate—特别是在父级和子级之间存在一对多关系的情况下。XML模板嵌入在XML模板中,尽管它们也可以在外部进行维护。
为了了解这是如何工作的,查看源代码csv很有帮助,模板及其生成的输出XML。
ID,_xmax,_xmin,_ymax,_ymin,_zmax,_zmin,name,city,end,start101,-122.9,-123.1,49.25,49.15,0,0,John,温哥华,12-11-09,11-22-99102,-122.5,-122.8,49.12,49,0,0,六月,萨里,9-15-10,02-25-05
约翰 温哥华 11-22-99 1211-09 -123.1、49.25-122.9、49.15
fme:get attribute(“name”) fme:get属性(“城市”) fme:get属性(“start”) fme:get属性(“end”) fm:get attribute(“xmin”),fm:get attribute(“ymax”)fm:get attribute(“xmax”),fm:get attribute(“ymin”)
请注意,我们已经用FME函数替换了字段值,这些函数在将值输入xmlTemplater时动态地从每个特性中插入值。另外请注意,这些函数周围的结构可以像您想要的那样复杂。例如,我不需要使用额外的模板来构建方框几何图形,因为每个特征只有一个。所以我可以将整个几何结构连同属性一起插入到特征模板中。
fme:get xml list属性(“123;list.features”)
请注意,XML文档的页眉/页脚可以像您希望的那样复杂。通常情况下,您还将包括编码信息,命名空间声明,也许还有一些创作文档。为了简单起见,这里不包括这个。
数据集模板---父功能类型的XML模板---子功能类型的XML模板
建筑几何也是如此。您可能需要使用单独的模板来构建XML几何图形,然后使用fme:get-xml-attribute命令将其插入到功能模板中。
-可以使用geometryextractor transformer将要素几何提取为XML,GML 3.1.1,GML 3.2.1,geojason等使您更容易将其插入到功能模板中(其中一些提取类型在2011年是新的)。
?2019安全亚搏在线软件公司|合法的