XML文件的读取(一)

原文发布时间:2012-07-30

作者:毛毛虫

对于基于web和开放标准数据,XML变得越来越普遍,XML用于CAD或GIS数据比较麻烦。这是因为GIS数据基本上是扁平的、表格的或关系的,而XML是嵌套的或面向对象的。为了整合XML数据到自己的系统上,需要克服这个挑战。FME的最新一些版本致力于使得FME读取XML更轻松。

这一部分内容就是针对XML的读取。

加载读模块后,数据格式选择XML,打开XML的格式的参数选项,可以看到参数如下:

XML文件的读取(一)_第1张图片

参数:Select Configuration Type(选择配置类型)

这个参数指定使用读取XML数据集的方式,包括:Feature Paths、xfMap和XRS方式。

使用Feature Paths方式,转化所有的XML元素到FME要素中。使用flattening选项把嵌套的结构转换为字段。父ID被记录所以可以建立关联。所以不需要任何其他的脚本就可以读取XML。

1)Feature Paths方式。使用Feature Paths和flattenting,定义想要提取的XML结构的点(节点或要素),可以查询XML。Flattening可以在选中的XML要素中把嵌套的结构转换为父.子的形式。记录父ID建立关联。所以不需要xfmaps和其他脚本,就可以读取XML。

使用Feature Paths的方法是:

在添加读模块对话框中,选择XML格式,指定XML文件后,在读模块参数中,设置configuration type = "Feature Paths"。在"elements to match"中指定想要生成要素类型的节点。或者使用*将所有的节点生成要素(在较大的或复杂的数据集中需要小心使用)。想要显示该节点中所有子节点的值,需要将Flatten Options参数中的Enable Flattening勾选(Flatten Options各个参数的具体换衣将在后面详细介绍)。

XML文件的读取(一)_第2张图片

下面是使用Feature Paths方式读取的示例:

如XML的内容如下:

 

    John

    Vancouver

   

      11-22-99

      12-11-09

   

   

       -123.1,49.25 -122.9,49.15

   

 

 

    June

    Surrey

   

      02-25-05

      9-15-10

   

   

       -122.8,49.12-122.5,49.0

   

 

 

设置configuration type = "Feature Paths"后,在"elements to match"中指定Contact,生成的要素类型为Contact,有两条记录,属性字段如下:

name

city

activeDate.from

activeDate.to

Coordinate_BOX.id

Coordinate_BOX.coords.coord{}

设置configuration type = "Feature Paths"后,在"elements to match"中指定*,生成的要素类型为:

Contact 

Coordinate_BOX

FeatureCollection

activeDate

city

coord

coords

from

name

to

每个要素各有生成两条记录。

 

这个处理不能保护原始的XML结构。‘flattening’意味着会强行将XML的结构降级为类似于表的结构。这是不可逆的。如果读取XML仅仅是想更新一些域,最好使用带XQuery查询的XMLUpdater或 XQueryUpdater 转换器。另一种方法是使用xfmaps得到想要的域值,再用XMLTemplates重构XML,不过需要做更多的工作。

 

 

 

未完待续……





你可能感兴趣的:(XML专题)