span8
span4
你好,
我正在寻求帮助,如果有人可以回应…
我正在使用FME 2016将数据转换为INSPIRE gml作为administration ativeboundaries的主题,我对xml世界还很陌生。
我已经为XMLTemplater查看了几个关于FME知识的示例,但是无法按照我的意愿将值写回。
我的源数据是一个带有linestring数据的地理数据库,其中包含对相关多边形的引用。
在FME中,我将每个ID的这些引用值连接到一个属性admUnit中。值用逗号分隔。然后使用AttributeSplitter和list爆裂器来公开列表admUnit_list{}。不同ID的列表长度不同,但决不为空。
|
||||||||||||
我希望最终输出类似于使用administration - boundary模式的INSPIRE gml
我无法得到这样的输出,由于缺乏使用xml的经验,我无法找出我做错了什么…… 我试了两种方法,都没有成功 方法1: 在xmlTemplater的根模板中 { $admUnit in {fme:get-list-attribute("admUnit_list{}")} 返回
} 我将xmlTemplater的输出写入属性admUnit_result。 这就得到了一个单行输出 admUnit_result(编码:utf - 8):
然后使用AttributeCopier将admUnit_result映射到admUnit{0}.xlink_href 这将写入到gml文件
问题 1.如何使它类似于上面的gml输出,其中每个值都有单独的行? 2.如何删除<和>分别得到<和> ? Method2: |
在xmlTemplater中,如果我将根设置为
{fme:工艺特点(“子”)}
和子模板到
{
$admUnit in {fme:get-list-attribute("admUnit_list{}")}
返回
}
返回的属性admUnit_result在检查器中显示空值。
|
||||||||||||||||||||||||
在gml文件中,admUnit元素类似,没有值
|
问题
如何将值输出?
有人知道答案吗?
谢谢。
我强烈建议使用INSPIRE GML writer而不是XMLTemplater / Text File writer来编写或读取任何EU INSPIRE数据。为了更好地支持复杂的模式(如INSPIRE),我们投入了大量资金来完全支持基于编写的GML应用程序模式。
在这种情况下,您需要选择并添加INSPIRE writer,然后选择添加administration - veboundary目的地特性类型。在这个特性类型中,您将看到admUnit{}.xlink_href。您将需要创建一个有效的管理边界功能与所需的属性,如浪潮等。然后您需要向这个称为admUnit{}的特性添加一个列表。xlink_href与价值观:
admUnit_list {0} = Ref1
admUnit_list {1} = Ref2
等。更多信息见:https://knowledge.亚搏在线safe.com/articles/775/inspire-gml-basic-writing-example.html
我相信你在我们的系统中有一个支持案例,所以我会继续跟进。如果没有,请通过电子邮件联系我们http://www.亚搏在线safe.com/support/以获得进一步的协助。
@itay
实际列表中的属性总数是变化的。
我使用xmlTemplater执行迭代(或循环每个id),因为每个id的值的最大数量不同,而目标gml需要一个单一条目。
我试图将带有xml标记的值写入单个属性中,这样它就可以很容易地映射到gml,而标记将给出新的行。
是的,你的建议是可行的,但太麻烦了。
如果我使用通过爆炸列表创建的属性,我需要输入一个值范围,因此我需要知道列表中值的最大数量,然后将它们单独映射为目标gml属性请求的单个值。
这是在gml中创建空条目,因为一些id可以有两个属性值,而其他id可以有更多的属性值。
在数据中,我也有一个类似的映射要执行,其中每个ID的最大选项数是大的,我真的不想要手动地做这个映射,所以如果我能找到一种方法来成功地做迭代,这将是很好的。
谢谢你的回答。
©2019安全亚搏在线软件公司法律