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"のどの関数が文字列を示し、そのような形式パターンを取ります。上記のフォーマットを取得するのを手伝ってください。

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 に答える