首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xsl for-each循环中XPath变量的格式日期

xsl for-each循环中XPath变量的格式日期
EN

Stack Overflow用户
提问于 2015-11-27 17:40:22
回答 1查看 207关注 0票数 0

我正在处理一个简单的导出文件,并被一个看似简单的问题卡住了。我遇到的问题是,当我试图在for-each循环中对日期使用substring()时,它会切断路径本身,而不是它的值。如果我将路径的值保存为变量,并尝试使用format-date()对其进行格式化,则导出失败。

我得到的日期的纯值看起来像这样:2015-11-27 00:00,我需要它看起来像这样:2015-11-27 (YYYY-MM-DD)。

现在我知道我对xsl非常陌生,所以我的语法可能完全不同。

下面是我的代码:

代码语言:javascript
运行
复制
<xsl:template match="/">
    <xsl:for-each select="Person/account/transactions"><xsl:text>&#xa;</xsl:text>
        <xsl:value-of select="./workplace/NUMBER"/><xsl:text>&#x9;</xsl:text>
        <xsl:text>null&#x9;</xsl:text>
        <xsl:variable name="purchaseDate"><xsl:value-of select="./PURCHASE_DATE"/></xsl:variable><xsl:value-of select="format-date($purchaseDate,'[Y0001]-[M01]-[D01]')"/><xsl:text>&#x9;</xsl:text>
    </xsl:for-each>
    <xsl:for-each select="Person"><xsl:value-of select="./EMAIL"/><xsl:text>&#x9;</xsl:text>
    <xsl:text>982</xsl:text>
    </xsl:for-each>

    <xsl:for-each select="start">
        <xsl:text>"SYNCID"&#x9;"USEREMAIL"&#x9;"DATE"&#x9;"CUSTOMEREMAIL"&#x9;"SURVEYID"</xsl:text>
    </xsl:for-each>
</xsl:template>

我指的是这个部分,这个部分带有format-date():

<xsl:variable name="purchaseDate"><xsl:value-of select="./PURCHASE_DATE"/></xsl:variable><xsl:value-of select="format-date($purchaseDate,'[Y0001]-[M01]-[D01]')"/>

我也尝试过用substring()这样编码:

<xsl:value-of select=substring("./PURCHASE_DATE", 1, 10)/>

EN

回答 1

Stack Overflow用户

发布于 2015-11-27 18:05:02

经过一些更严格的测试后,我终于通过使用substring使其正常工作:

代码语言:javascript
运行
复制
<xsl:variable name="purchaseDate"><xsl:value-of select="./PURCHASE_DATE"/></xsl:variable><xsl:value-of select="substring($purchaseDate, 1, 10)"/>

尽管这可能不是处理日期的最好方法,但作为输出,我仍然认为它是一种有效的解决方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33954418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档