我的代码生成以下XML:
<person_app>
<person_data>
<person>
...person details here...
</person>
</person_data>
</person_app>
使用XSLT,我按如下方式解析人员记录:
<xsl:template match="/person_app/person_data">
<xsl:for-each select="person">
...generate person HTML...
</xsl:for-each>
</xsl:template>
然而,在我收到零人的情况下,我想显示“没有找到记录”(或类似的东西)。当应用程序返回零记录时,XML类似于以下内容:
<person_app/>
长话短说,当我使用&lt; xsl:for-each /&gt;时,如何测试空结果集?解析我的人事记录?我试过以下但没有成功:
<xsl:if test="not(person)">
<div style="font-size:18pt"><xsl:text>No records found</xsl:text></div>
</xsl:if>
答案 0 :(得分: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>
答案 1 :(得分:2)
<xsl:template match="/person_app/person_data">
<xsl:if test="count(person) = 0">
<div style="font-size:18pt"><xsl:text>No records found</xsl:text></div>
</xsl:if>
<xsl:for-each select="person">
...generate person HTML...
</xsl:for-each>
</xsl:template>