我有一些博客的XML和XSLT代码,我需要转换它:
<xsl:value-of select="$firstBlogPost/@PostDate"/>
因此它以这种格式呈现:2014年3月28日
有人可以帮忙吗?我是XML / XSLT的新手。提前谢谢!
这是我的XML:
<Navigation Type="Children" Name="BlogNavigation" label="Blog Navigation">
<Page ID="x9532" URL="x9532.xml?Preview=true&Site=&IncludeAllPages=false&tfrm=4&PubTgt=4&Site=&UserAgent=" Schema="BlogPost" Locale="" Changed="20140327T20:03:24" CategoryIds="" Title="XXXXX" Abstract="XXXXX" bodycopy="XXXXX" Author="XXXXX" PostDate="2014-03-27" Name="XXXXX" />
</Navigation>
这是我的XSLT:
<xsl:template match="BlogHome">
<xsl:variable name="firstBlogPost" select="//Navigation[@Name = 'BlogNavigation']/Page" />
<xsl:value-of select="$firstBlogPost/@PostDate"/>
</xsl:template>
答案 0 :(得分:1)
让我们假设它是你的来源:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Navigation Type="Children" Name="BlogNavigation" label="Blog Navigation">
<Page PostDate="2014-03-27" />
</Navigation>
所以,你需要一个转换PostDate属性的模板,所以XSL可以是:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/Navigation/Page">
<xsl:call-template name="format_date">
<xsl:with-param name="date" select="@PostDate"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="format_date">
<xsl:param name="date"/>
<xsl:variable name="month" select="substring($date, 6, 2)"/>
<xsl:choose>
<xsl:when test="$month = '01'">January</xsl:when>
<xsl:when test="$month = '02'">February</xsl:when>
<xsl:when test="$month = '03'">March</xsl:when>
<xsl:when test="$month = '04'">April</xsl:when>
<xsl:when test="$month = '05'">May</xsl:when>
<xsl:when test="$month = '06'">June</xsl:when>
<xsl:when test="$month = '07'">July</xsl:when>
<xsl:when test="$month = '08'">August</xsl:when>
<xsl:when test="$month = '09'">September</xsl:when>
<xsl:when test="$month = '10'">October</xsl:when>
<xsl:when test="$month = '11'">November</xsl:when>
<xsl:when test="$month = '12'">December</xsl:when>
</xsl:choose>
<xsl:text> <xsl:value-of select="substring($date, 9, 2)"/></xsl:text>
<xsl:text>, <xsl:value-of select="substring($date, 1, 4)"/></xsl:text>
</xsl:template>
</xsl:stylesheet>
然后你将获得:
March 27, 2014
我希望它可以帮到你。