3

似乎我的模板从未被调用,但 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()....
4

2 回答 2

7

那是因为您正在尝试应用嵌套汽车...

已经更改了上下文,因此for-each您必须在当前节点上应用模板:

<xsl:apply-templates select="."/>
于 2009-12-14T16:01:18.050 回答
4

在 for-each 中,“car”是活动节点,并且由于默认情况下搜索后代轴的select属性apply-templates,它试图选择作为活动 car 元素的子元素的“car”元素。尝试

<xsl:apply-templates select="."/>

反而。

于 2009-12-14T16:02:22.340 回答