在页面的另一部分<xsl:when>中排序<xsl:when>的结果</xsl:when>

时间:2011-12-03 08:47:06

标签: xml xslt

我在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>
你能告诉我我该怎么办?

1 个答案:

答案 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元素。