【发布时间】:2012-01-30 02:29:42
【问题描述】:
下面是我的 Umbraco xslt 的一部分,我在其中输出 PDF 文件链接和文件大小。我遇到的问题是针对媒体文件的大小属性。 size 属性的别名是 umbracoBytes。
我似乎无法定位这个。
所以我现在输出的只是打开 PDF 的链接,而不是文件大小。
任何可以提供帮助的人将不胜感激。谢谢。
<td>
<xsl:if test="document= ''">
<xsl:value-of select="@nodeName"/>
</xsl:if>
<xsl:if test="document != ''">
<a target="_blank">
<xsl:attribute name="href">
<xsl:value-of select="umbraco.library:GetMedia(document, 'false')/umbracoFile"/>
</xsl:attribute>
<xsl:value-of select="@nodeName"/>
<xsl:variable name="size" select="data [@alias = 'umbracoBytes']" />
<xsl:variable name="sizeAndSuffix">
<xsl:choose>
<xsl:when test="$size >= 1073741824">
<xsl:value-of select="format-number($size div 1073741824,'#,###')"/>
<xsl:text>GB</xsl:text>
</xsl:when>
<xsl:when test="$size >= 1048576">
<xsl:value-of select="format-number($size div 1048576,'#,###')"/>
<xsl:text>MB</xsl:text>
</xsl:when>
<xsl:when test="$size >= 1024">
<xsl:value-of select="format-number($size div 1024,'#,###')"/>
<xsl:text>KB</xsl:text>
</xsl:when>
<xsl:when test="$size > 0 and $size < 1024">
<xsl:value-of select="format-number($size div 0,'#,###')"/>
<xsl:text>Bytes</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>0 Bytes</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
</a>
</xsl:if>
</td>
【问题讨论】:
-
您使用的是哪个版本的 Umbraco?
-
问题是您没有指定源 XML 文档——对于不同的文档,结果会有所不同,没有人可以重现您的结果。此外,提供的代码只是一个片段(甚至不是模板)。请提供完整的(最少首选)源 XML 文档和完整的所需结果,并说明转换必须实现的要求。