3

我有输入 xml 作为

           <content>
             <date>
            <day>14</day>
               <month>06</month>
                <year>2012</year>
               </date>
            </content>

希望将其转换为

          <content>
               <date>2012-06-14T00:00:00</date>
           </content>

使用 xslt

           <?xml version="1.0" encoding="utf-8"?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
             <xsl:output method="xml" indent="yes"/>

              <xsl:template match="content">
                 <content>
                   <xsl:apply-templates select="date"/>
                 </content>
              </xsl:template>

                 <xsl:template match="date">
                  <date>
                   <xsl:variable name="year" select="year"/>
                   <xsl:variable name="month" select="month"/>
                   <xsl:variable name="day" select="day"/>
               <xsl:value-of select="$year" />-<xsl:value-of select="$month"/>-
                 <xsl:value-of  select="$day"/>

                 </date>   
                </xsl:template>        

    </xsl:stylesheet>

我想要 YYYYMMDDTHH:MM:SS 格式的日期,例如 2012-06-15T02:52:37 我怎样才能得到它。xslt "1.0" 中的哪个函数对字符串进行拍照并采用格式模式。aynone 请帮我获得上述格式。

4

1 回答 1

1

这种转变

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/*">
     <content>
       <xsl:apply-templates/>
     </content>
 </xsl:template>

 <xsl:template match="date">
  <date>
   <xsl:value-of select="concat(year, '-', month, '-', day, 'T00:00:00')"/>
  </date>
 </xsl:template>
</xsl:stylesheet>

应用于提供的 XML 文档时

<content>
    <date>
        <day>14</day>
        <month>06</month>
        <year>2012</year>
    </date>
</content>

产生想要的正确结果

<content>
   <date>2012-06-14T00:00:00</date>
</content>
于 2012-06-15T12:57:46.687 回答