xsl apply-templates的问题

时间:2009-12-14 15:53:56

标签: xml pdf xslt pdf-generation apache-fop

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

2 个答案:

答案 0 :(得分:7)

那是因为你试图申请嵌套车......

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

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

答案 1 :(得分:4)

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

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

代替。