J'essaie de créer un simple inventaire d'éléments dans un site Web Sitecore en utilisant un xslt. Le problème est que je ne peux pas trouver un moyen de tester si un élément a des éléments descendants en dessous.Test pour les objets descendants
Il est facile d'obtenir le plus haut niveau fixé comme celui-ci:
<xsl:template match="*" mode="main">
<table width="100%" class="alternating">
<xsl:for-each select="./item">
<tr>
<td width="100px"><sc:image field="Image" mh="100" mw="100" /></td>
<td style="vertical-align:top"><h2><sc:text field="Title"/></h2></td>
<td style="vertical-align:top"><xsl:value-of select="sc:path(.)" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
Cela crée une belle table plate de l'image principale, le titre et le chemin de chaque élément juste au-dessous où vous commencez. Le problème est que je ne peux pas trouver un moyen de tester facilement si l'un de ces éléments a des descendants. Cela ressemblerait à ceci:
<xsl:template match="*" mode="main">
<table width="100%" class="alternating">
<xsl:for-each select="./item">
<tr>
<td width="100px"><sc:image field="Image" mh="100" mw="100" /></td>
<td style="vertical-align:top"><h2><sc:text field="Title"/></h2></td>
<td style="vertical-align:top"><xsl:value-of select="sc:path(.)" /></td>
<td>
<!—test whether the item has descendants -->
<xsl:if test=?????>
<!—loop through descendant items -->
<xsl:for-each select="./item">
Render information about each descendant item
</xsl:for-each>
</xsl:if>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>