Xslt 在import.xsl中将main.xsl文件中映射的元素重写为NULL

Xslt 在import.xsl中将main.xsl文件中映射的元素重写为NULL,xslt,Xslt,我们正在尝试使用调用模板将main.xsl文件中映射到import.xsl文件中的元素重写为NULL。但我们将目标映射两次,而不是覆盖。请帮忙 main.xsl <db:LONG_DESCRIPTION xml:id="id_102"> <xsl:value-of select="corecomEBO:RevisedItem/corecomEBO:Description" xml:id="id_103"/> </db:LONG_DESCRIPTION> &l

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

main.xsl

<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: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>

import.xsl

<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: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" />
XXX
预期产出

<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" />

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

如果无法修改
main.xsl
,那么最好应用第二个转换,该转换将改变第一个转换生成的数据

另一种方法是为提供所需输出的导入转换中的相同模板添加优先级。除非看到
main.xsl
的全部内容,否则我无法帮助您完成这项工作