0

我们正在尝试使用调用模板将 main.xsl 文件中映射的元素覆盖为 import.xsl 文件中的 NULL。但是我们将目标映射两次而不是覆盖。请帮助。

主文件

<db:LONG_DESCRIPTION xml:id="id_102">
<xsl:value-of select="corecomEBO:RevisedItem/corecomEBO:Description" xml:id="id_103"/>
</db:LONG_DESCRIPTION>

<xsl:call-template name="LONG_DESCRIPTION_Custom"/>

导入.xsl

<xsl:template name="LONG_DESCRIPTION_Custom">
<db:LONG_DESCRIPTION      xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/INV_EBI_CHANGE_ORDER_PUB/PROCESS_CHANGE_ORDER_LIST/" xml:id="id_102" >
<xsl:value-of select="''"/>
</db:LONG_DESCRIPTION>
</xsl:template>

输出

<db:LONG_DESCRIPTION xml:id="id_102">XXX</db:LONG_DESCRIPTION>
<db:LONG_DESCRIPTION xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/INV_EBI_CHANGE_ORDER_PUB/PROCESS_CHANGE_ORDER_LIST/" xml:id="id_102" />

预期输出

<db:LONG_DESCRIPTION xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/INV_EBI_CHANGE_ORDER_PUB/PROCESS_CHANGE_ORDER_LIST/" xml:id="id_102" />
4

1 回答 1

0

一旦元素被转换实例化,就无法更改它。正如您所发现的,其他模板所能做的就是添加到已经创建的内容中。

如果您无法修改main.xsl,那么您可以做的最好的事情是应用第二个转换,这将改变第一个生成的数据。

另一种方法是在提供所需输出的导入转换中为相同模板添加优先级。除非我看到完整的main.xsl.

于 2013-05-21T10:42:55.363 回答