我有一个关于如何在apply-templates中使用select属性的问题。
当我这样写:<ul><xsl:apply-templates select="authors/author" /></ul>
时,它是什么意思?这是否意味着它应该应用一个模板,其中作者节点是作者节点的子节点,该节点是当前节点的子节点?
遵循模板规则:
<xsl:template match="author">
<li><xsl:value-of select="."/></li>
</xsl:template>
答案 0 :(得分:2)
这是否意味着它应该适用 作者节点所在的模板 作者节点的子节点是 当前节点的子节点?
完全。
嗯,更加夸张:这意味着XSLT处理器应该将模板应用于所有 <author>
个节点 <authors>
个节点的所有 <author>
个节点谁是当前节点的子节点。
如果有多个模板可以匹配<xsl:template match="author[not(@country = 'USA')]">
<!-- will execute for any non-U.S. authors, specifically -->
</xsl:template>
<xsl:template match="author">
<!-- will execute for all other authors -->
</xsl:template>
,则XSLT处理器将决定应用哪个模板。例如:
{{1}}