2013-05-21 24 views
0

我們試圖在使用調用模板的import.xsl文件中將main.xsl文件中映射的元素覆蓋爲NULL。但是我們正在將目標映射兩次而不是重寫。善意幫助。在import.xsl中覆蓋映射到main.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"/> 

import.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> 

OUTPUT

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

回答

0

一旦元素已經被改造就沒有辦法去改變它實例化。正如您所發現的,所有其他模板可以做的是添加到已創建的內容中。

如果無法修改main.xsl那麼你能做的最好的是應用變換將改變由第一產生的數據。

另一種方法是將優先級添加到導入轉換中的相同模板中,以提供所需的輸出。除非我看到main.xsl的全部內容,否則我無法幫助您。