我有一个给定的源XML文档,其结构如下:
源XML的特点是:
转化要求和目标XML如下: 根据元素中元素的
<?xml version="1.0" encoding="UTF-8"?>
<sample>
<definition>
<variable>
<name>object01_ID_138368350261919620</name>
<value>NUL</value>
</variable>
<variable>
<name>param01_ID_138368350261919621</name>
<value>10</value>
</variable>
<variable>
<name>param02_ID_138368350261919622</name>
<value>100</value>
</variable>
</definition>
<override>
<assignment>
<name>object01_ID_138368350261919620</name>
<path>module01/object01</path>
</assignment>
<assignment>
<name>param01_ID_138368350261919621</name>
<path>module01/object01/param01</path>
</assignment>
<assignment>
<name>param02_ID_138368350261919622</name>
<path>module01/object01/param02</path>
</assignment>
</override>
</sample>
源XML的特点是:
<override>
元素中的每个<assignment>
元素都对应于<definition>
元素中的一个<variable>
元素。这种1:1的关系是通过它们的<name>
元素的内容建立的。转化要求和目标XML如下: 根据元素中元素的
param03
是如何添加的?我不清楚你在顶部提到的源XML应该如何转换为你发布的结果XML。 - ABach<override>
元素中的<assignment>
元素方面都非常有效(请参见注释“处理变量赋值”后的代码)。试一试。我描述的问题出现在转换所需的添加相应的<variable>
元素到<definition>
元素中的部分(请参见注释“处理变量定义”后的代码)。对于这个转换的部分,我尝试了两种方法(_for-each_和_apply-templates_),但不幸失败了。 - Stephan Rudolph