使用<xsl:for-each>时如何测试零记录?

Huu*_*uze 5 xslt

我的代码生成以下XML:

<person_app>
  <person_data>
    <person>
         ...person details here...
    </person>
  </person_data>
</person_app>
Run Code Online (Sandbox Code Playgroud)

使用XSLT,我解析人员记录如下:

<xsl:template match="/person_app/person_data">
  <xsl:for-each select="person">
      ...generate person HTML...
  </xsl:for-each>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

但是,如果我收到零人,我想显示"找不到记录"(或类似的东西).当应用程序返回零记录时,XML类似于以下内容:

<person_app/>
Run Code Online (Sandbox Code Playgroud)

简而言之,当我使用<xsl:for-each />来解析我的Person记录时,如何测试空结果集?我试过以下但没有成功:

<xsl:if test="not(person)">
  <div style="font-size:18pt"><xsl:text>No records found</xsl:text></div>
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

and*_*ncx 7

像这样的东西:

<xsl:choose>
  <xsl:when test="person">
    <xsl:for-each select="person">
       ...generate person HTML...
    </xsl:for-each>
  </xsl:when>
  <xsl:otherwise>
    <div style="font-size:18pt"><xsl:text>No records found</xsl:text></div>
  </xsl:otherwise>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)