XML文件的转换与修改

时间:2024-03-15 18:46:36

原文发布时间:2013-12-13

作者:tenniwdy

对于基于web和开放标准数据,XML变得越来越普遍,XML里面也包含很多我们需要的信息与数据。因此,我们就需要转换或是提取出我们需要的数据信息,XML数据可以转换为很多数据,但如CADGIS数据比较麻烦,这是因为GIS数据基本上是扁平的、表格的或关系的,而XML是嵌套的或面向对象的。因此今天我就对XML进行简单的转换和修改。

一.XML文件的转换

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

        XML文件的转换与修改

参数的设置前面已经说得比较明白了,这里就不再次说明。设置好读写模块,将不需要带有xml_属性删掉。

XML文件的转换与修改

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

XML的内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<FeatureCollection>

<Contact>

<name>John</name>

<city>Vancouver</city>

<activeDate>

<from>11-22-99</from>

<to>12-11-09</to>

</activeDate>

<Coordinate_BOX id="101">

<coords><coord>-123.1,49.25</coord><coord> -122.9,49.15</coord></coords>

</Coordinate_BOX>

</Contact>

<Contact>

<name>June</name>

<city>Surrey</city>

<activeDate>

<from>02-25-05</from>

<to>9-15-10</to>

</activeDate>

<Coordinate_BOX id="102">

<coords><coord>-122.8,49.12</coord><coord>-122.5,49.0</coord></coords>

</Coordinate_BOX>

</Contact>

</FeatureCollection>

运行结果就得到一个包含两条数据6个属性的Excel数据。

XML文件的转换与修改

 二.XML文件的修改

    XML文件的结构的点结构点一般都比较多,在其中某一些节点修改就比较麻烦,如果用XML的转换器来进行修改就方便很多。接下来就简单介绍一下XMLUpdaterXML数据的修改。对每个更新的文档,需要一个XML路径表达式来确定被修改的项目位置。这个路径可能会有多个项目,在这种情况下,所有的项目都会被修改。替换已有项目或者插入新项目,给出两个参数来指定添加到文档的值。这个值可以是一个简单文本,也可以是一个XQuery表达式。

添加读模块需要注意的是读取XML选择的(如下图),因为所需修改数据是所有数据中的某一个节点,所以就将整个文件以文本的方式读取。参数设置中的Read Whole File at Once设置为YES

XML文件的转换与修改

 再添加一个读模块,读取需要更新的CSV数据,参数设置中勾选“文件有命名字段行”。数据内容如下图:

XML文件的转换与修改

 添加转换器XMLUpdater和写模块后工作空间如下:

XML文件的转换与修改


 参数设置如下:

XML文件的转换与修改

 更新类型有很多,可以根据自己的需要进行选择。

XML路径是被替换的数据节点位置,如:

<Contact>

<name>John</name>

表达方式就是://Contact/name

值类型就根据数据来选择,值设置如下:

XML文件的转换与修改

运行结果如下:

XML文件的转换与修改

前面的示例数据的name已经被替换了,XMLUpdaterXML修改功能很强大很复杂,其他内容就不一一讲解了。