2016-09-28 64 views
0
  1. 這是我的輸入數據。它包含了許多其他領域也有,但是我已經刪除它們:無法使用XSL將值從兩個標記複製到另一個XML

    <?xml version="1.0" encoding="UTF-8"?> 
    <tables> 
    <table> 
        <row> 
        <JOURNAL_DATE></JOURNAL_DATE> 
        <TRANSACTION_DATE>2016-08-15T00:00:00-04:00</TRANSACTION_DATE> 
        <TRANSACTION_TIME>11:52:18.005</TRANSACTION_TIME> 
        </row> 
    <table> 
    </tables> 
    
  2. 我想這樣的輸出,其中journal_date是TRANSACTION_DATE具有日期值和transaction_time時間:

    <JOURNAL_DATE>2016-08-15 11:52:18.005</JOURNAL_DATE> 
    <TRANSACTION_DATE>2016-08-15T00:00:00-04:00</TRANSACTION_DATE> 
    <TRANSACTION_TIME>11:52:18.005</TRANSACTION_TIME> 
    
  3. 我正在使用以下XSL代碼,需要做哪些更改?我是一個新手。

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" /> 
    <xsl:template match="node()|@*"> 
    <xsl:copy> 
        <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
    </xsl:template> 
    <!--Suryanshu For adding required date format --> 
    
    <xsl:template match="JOURNAL_DATE"> 
    <xsl:copy> 
        <xsl:call-template name="formatdate"> 
        <xsl:with-param name="datestr" select="."/> 
        </xsl:call-template> 
    </xsl:copy> 
    </xsl:template> 
    
    
    <xsl:template name="formatdate"> 
    <xsl:param name="datestr"/> 
    <xsl:value-of select="substring($datestr,1,10)"/> 
    </xsl:template> 
    
    </xsl:stylesheet> 
    

更重要的是改變做我需要做的,這樣交易時間在日誌日期標籤添加。

回答

0

正確的值傳遞到您的formatdate模板,你需要引用交易日是這樣的...

<xsl:with-param name="datestr" select="../TRANSACTION_DATE"/> 

其中,..選擇父元素row

試試這個XSLT模板

<xsl:template match="JOURNAL_DATE"> 
<xsl:copy> 
    <xsl:call-template name="formatdate"> 
    <xsl:with-param name="datestr" select="../TRANSACTION_DATE"/> 
    </xsl:call-template> 
    <xsl:text> </xsl:text> 
    <xsl:value-of select="../TRANSACTION_TIME" /> 
</xsl:copy> 
</xsl:template> 
相關問題