2016-07-29 23 views
0

XML收到转换日期fromat在XML响应收到,而使用XSLT转换

<ns15:ReferenceEffectiveDate> 
        <ns12:Year>2016</ns12:Year> 
        <ns12:Month>7</ns12:Month> 
        <ns12:Day>20</ns12:Day> 
</ns15:ReferenceEffectiveDate> 
. 
. 

. 
. 
. 
. 
. 
. 
<ns15:ReferenceEffectiveDate> 
        <ns12:Year>2016</ns12:Year> 
        <ns12:Month>7</ns12:Month> 
        <ns12:Day>20</ns12:Day> 
</ns15:ReferenceEffectiveDate> 

这是迄今为止在从Web服务我的回应XML收到的类型写入文本文件。

当月和日为单个数字时,我一直在接收日期格式为YYYYMD。和YYYYMMDD当月和日是两位数。

我想通过XSLT转换获得格式为YYYYMMDD。

目前我使用

<xsl:template match="/"> 
<xsl:for-each select......(sometext which cannot be written)> 
<xsl:value-of select="ns2:ReferenceEffectiveDate"/> 
<xsl:value-of select="$line-separator"/> 
</xsl:for-each> 
</xsl:template> 

请帮助我如何能得到固定的格式拉动。

电流输出收到的样子

2016630 
2016630 
2016630 
2016630 
2016630 
2016630 
2016630 

所需的输出是

20160630 
20160630 
20160630 
20160630 
20160630 

回答

0

这是很难准确地回答你的问题,因为上下文丢失了,一般情况下,你需要做的是这样的:

<xsl:for-each select="ns15:ReferenceEffectiveDate"> 
    <xsl:value-of select="ns12:Year"/> 
    <xsl:value-of select="format-number(ns12:Month, '00')"/> 
    <xsl:value-of select="format-number(ns12:Day, '00')"/> 
    <xsl:text>&#10;</xsl:text> 
</xsl:for-each> 
+0

它给出的输出为 NaNNaN NaNNaN NaNNaN NaNNaN – shamsul

+1

这是可能的,因为你没有发布[mcve],我不得不猜测一些部分。但原则是正确的 - 看到它在这里工作:http://xsltransform.net/94AbWAz –