00:00
大家好,我是执行软件的EDI顾问温迪。这是我们关于xml map端口的系列视频讲解,该系列涵盖了该端口的所有功能。本视频是该系列讲解中关于循环映射的部分,通过使用lo节点来降低XML数据中的层级结构。在前面的视频中,我们讲解了XML端口的一些基本内容,如果说有不懂的地方,可以进行回看。我们在学习路节点之前,必须先要了解什么是虚拟节点。虚拟节点之前有讲到过,我们来进行简单的回顾。虚拟节点,它是指出现在XML设计器中,但并未出现在XML输出中的节点。换句话说,它这是一种逻辑,它实现了映射逻辑,但不是映射内容的一部分。我们要学习的loop节点也是一种虚拟节点,使用loop节点之后,它就不会出现在输出的XML文件中。为了让大家更直观的了解loop节点,我们来看一个映射的案例。
01:04
输入位于左侧。输出位于右侧。可以看到,输入的子元素data需要映射到数据元素,输入的子元素child需要映射到数据元素data中。再来观察一下它的层级结构。输入部分有三层,分别是itunes parent和child。输出部分只有两层,分别是itunes和data。通过建立映射,我们减少了层级结构。接下来让我们直接进入XML映射连接器。映射端口是xml map端口,该端口的源文件和目标文件我已经配置好了。我们直接进行映射,第一种方式就是不使用loop节点。因为我们事先不知道parent和child它这个父子结构的重复频率,也就是说他们会出现多少次。
02:03
所以可以先将parent映射到输出的it中。然后将child映射到数据元素data中。将多余的元素data删除。点击保存,建立好了映射关系。输入选择更多创建测试文件,测试文件创建好之后,这里我需要强调测试文件的结构和我们设置的原文件是一样的。选中测试文件,点击发送,发送好了之后选输出端口下载输出文件。下载完成之后查看。查看该输出文件,我们会发现一个问题,跟项目元素itto重复了。我们并不希望它重复。我们想要的结构是单个的item元素中包含了多个数据元素data,因此我们必须通过修改映射来解决这个问题。
03:09
查看我们建立好的映射,因为parent节点它是一个循环节点,将它映射到it中,那it必然会有重复。我们可以先将该映射删除。重新建立映射,这个时候使用loop节点点击数据元素data。选择添加循环,一个新的loop节点就被就会被创建,我们将parent拖动到loop节点之后。再将数据,再将child拖动到数据元素data。点击保存。重新上传测试文件可以选中。重入队列。点击发送。在输出端口重新下载。下载完成之后打开。
04:09
查看该输出文件,我们会发现只有一个it元素,且它里面包含了多个数据元素data,并且刚才创建的lo节点没有出现在输出中。有了这两种映射方式的对比,我们再来讨论一下什么时候需要使用loop节点。关于刚才的示例,我们必须要注意到原文件,它的结构是三层。目标文件只有两层,所以说如果该映射项目中需要降低XL的层级结构时,我们就可以使用lo节点。好啦,这就是我们关于loop节点的讲解。感谢你的观看,如果你需要学习更多的相关知识,欢迎通过下方的联系方式联系我们。
我来说两句