根据使用xsl的xml输出显示不同的图像
我有一个xml(从外部部件获取),它输出:根据使用xsl的xml输出显示不同的图像,xml,xslt,Xml,Xslt,我有一个xml(从外部部件获取),它输出: ...<prop name="day">monday</prop> <prop name="week">2</prop>... …星期一 2. 我想知道是否有可能使用xsl来显示图像而不是日期名称?一天的名称将随着7个可能的变量而改变,我需要为一周中的每一天显示不同的图像 所以我希望的结果是这样的: <img src="mondayimage.jpg"> <p>Week n
...<prop name="day">monday</prop>
<prop name="week">2</prop>...
…星期一
2.
我想知道是否有可能使用xsl来显示图像而不是日期名称?一天的名称将随着7个可能的变量而改变,我需要为一周中的每一天显示不同的图像
所以我希望的结果是这样的:
<img src="mondayimage.jpg">
<p>Week number 2</p>
第二周
您可以使用xsl:choose来处理您的场景
下面我将包含您可以使用的代码片段
<xsl:template match="prop">
<xsl:variable name="day" select="."/>
<xsl:choose>
<xsl:when test="$day='monday'">
<img src="mondayimage.jpg"/>
</xsl:when>
<!-- repeat condition for all the days -->
<xsl:otherwise>
<p><xsl:value-of select="@name"/> number <xsl:value-of select="."/> </p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
数
我建议为每种类型的道具使用不同的模板,以便于以后的更改。您还可以在字符串中使用“{}”中的XSL代码来生成如下所示的模板:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="root/prop[@name='day']">
<img src="{.}image.jpg"/>
</xsl:template>
<xsl:template match="root/prop[@name='week']">
<p><xsl:value-of select="concat('Week number ',.)"/></p>
</xsl:template>
</xsl:stylesheet>
在xslt 2.0中,您可以使用xpath函数的索引来生成有效的查找:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output indent="yes"/>
<xsl:param name="days" select="('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')"/>
<xsl:param name="day-image" select="('image1.png','image2.png','image3.png','image4.png','image5.png','image6.png','image7.png')"/>
<xsl:template match="/root">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="prop[@name='day']">
<img src="{$day-image[index-of($days, current())]}"/>
</xsl:template>
<xsl:template match="prop[@name='week']">
<p>Week number <xsl:value-of select="."/></p>
</xsl:template>
</xsl:transform>
周数