在XSLT样式表中设置默认值

时间:2018-07-09 16:38:40

标签: json xml xslt icecast

我有一个Icecast2流的json.xsl文件,看起来像这样:

<xsl:template match="/icestats"><!-- <xsl:param name="callback" /> <xsl:value-of select="$callback" /> -->parseMusic({<xsl:for-each select="source">
  "<xsl:value-of select="@mount"/>":
  {
  "title":"<xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" />"
  }
  <xsl:if test="position() != last()"><xsl:text>,</xsl:text></xsl:if>
  </xsl:for-each>});
</xsl:template>

这可以正常工作,但是只要流关闭并且不接收任何元数据,“标题”就会说“”:

parseMusic({
"/listen.mp3":
{
"title":"",
}
});

在这种情况下,如何设置默认值(例如“ title”:“很快就会回来”)?

1 个答案:

答案 0 :(得分:0)

在XSLT 2.0中,使用

<xsl:value-of select="(title, 'will be back soon')[1]"/>

在XSLT 1.0中,使用xsl:choose