我在XSLT中有这样的Block代码:
<xsl:template match="zootier">
<xsl:choose>
<xsl:when test="not(@flugfaeghig) or (@flugfaeghig='true')">
<xsl:value-of select="name/text()"/>
(<xsl:value-of select="@id"/>)
</xsl:when>
<xsl:otherwise>
<xsl:if test="@flugfaeghig='false'">
<xsl:value-of select="name/text()"/>
(<xsl:value-of select="@id"/>)
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
我希望在页面的一部分显示<xsl:when>
的结果,在另一部分显示<xsl:otherwise>
的结果。例如,我希望在 A 中显示<xsl:when>
的格式,并在 B
<xsl:otherwise>
的格式
<xsl:template match="zoo">
<html>
<title>
<xsl:text>ZOO</xsl:text>
</title>
<head>
<h1>Behausung im Zoo "Zoogarten"</h1>
</head>
<table>
<tr>
<td>
<xsl:text>A </xsl:text>
</td>
</tr>
<tr>
<td>
<xsl:text>B</xsl:text>
</td>
</tr>
<xsl:apply-templates select="zootier" />
</table>
</html>
你能告诉我我该怎么办?
答案 0 :(得分:0)
如果我理解你的话,这个XSLT应该可行。如果还有问题,可以提供XML示例和所需结果吗?我无法测试这个。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="zoo">
<html>
<title>
<xsl:text>ZOO</xsl:text>
</title>
<head>
<h1>Behausung im Zoo "Zoogarten"</h1>
</head>
<table>
<tr>
<th>
<xsl:apply-templates select="zootier[not(@flugfaeghig) or (@flugfaeghig='true')]"/>
</th>
<td>
<xsl:text>A </xsl:text>
</td>
</tr>
<tr>
<th>
<xsl:apply-templates select="zootier[@flugfaeghig='false']"/>
</th>
<td>
<xsl:text>B</xsl:text>
</td>
</tr>
</table>
</html>
</xsl:template>
<xsl:template match="zootier">
<xsl:value-of select="concat(name,' (',@id,')')"/>
</xsl:template>
</xsl:stylesheet>
我们的想法是在您需要的位置过滤正确的zootier
元素。