这是我的输入数据。它还包含许多其他字段,但我删除了它们:
<?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>
我想要一个像这样的输出,其中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>
我正在使用以下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 :(得分: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>