似乎我的模板从未被调用,但for循环正常工作。
它打印“test”与“car”节点存在的次数完全相同但似乎没有访问“doStuff”并且从不输出“test2”。有什么想法吗?
<fo:table-body>
<xsl:for-each select="car">
test
<xsl:apply-templates select="car" />
</xsl:for-each>
</fo:table-body>
...
<xsl:template match="car">
<fo:table-row height="0.40cm">
test2
dostuff()....
答案 0 :(得分:7)
那是因为你试图申请嵌套车......
for-each
已经更改了上下文,因此您必须在当前节点上应用模板:
<xsl:apply-templates select="."/>
答案 1 :(得分:4)
在for-each中,“car”是活动节点,因为默认情况下select
上的apply-templates
属性搜索后代轴,它试图选择作为子项的“car”元素活跃的汽车元素。尝试
<xsl:apply-templates select="."/>
代替。