xsl:apply-templates
is push
xsl:for-each
is pull
A template that lists the names of all the atoms in the document:
<xsl:template match="PERIODIC_TABLE">
<html>
<body>
<ul>
<xsl:for-each select="ATOM">
<li><xsl:value-of select="NAME"/></li>
</xsl:for-each>
</ul>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>