首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xslt转换日期,分隔节点

xslt转换日期,分隔节点
EN

Stack Overflow用户
提问于 2017-07-25 19:30:11
回答 2查看 540关注 0票数 0

关于我在level3中的xml

代码语言:javascript
复制
<IncorporationDate>
  <CCYY>2016</CCYY>
  <MM>04</MM>
  <DD>21</DD>
</IncorporationDate>

现在我需要将其显示为2016年4月21日

所以我尝试连接这个,并使用format-date,但在尝试格式化字符串时得到错误。

代码语言:javascript
复制
<xsl:variable name="incorpDate">
      <xsl:value-of select="concat(//a:Identification/b:IncorporationDate/c:DD,'/',//a:Identification/b:IncorporationDate/c:MM,'/',//a:Identification/b:IncorporationDate/c:CCYY)"/>
</xsl:variable>

然后

代码语言:javascript
复制
 <xsl:value-of select="format-date($incorpDate, '[D] [MNn] [Y0001]')" />

我尝试在整个节点上使用format-date

代码语言:javascript
复制
 <xsl:value-of select="format-date(//a:Identification/b:IncorporationDate, '[D] [MNn] [Y0001]')" />

我知道这可能很简单,但是xml/xslt不是我所知道的,我学习它是因为需要更改许多样式表。

EN

Stack Overflow用户

发布于 2017-07-25 19:43:22

创建一个xs:date,然后格式化:

代码语言:javascript
复制
<xsl:template match="IncorporationDate">
    <xsl:value-of select="format-date(xs:date(concat(CCYY, '-', MM, '-', DD)), '[D] [MNn] [Y0001]')"/>
</xsl:template>

完整示例

代码语言:javascript
复制
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="IncorporationDate">
        <xsl:value-of select="format-date(xs:date(concat(CCYY, '-', MM, '-', DD)), '[D] [MNn] [Y0001]')"/>
    </xsl:template>

</xsl:transform>

http://xsltransform.net/naZXpXm/1

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45301971

复制
相关文章

相似问题

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