0

我有一个主要的 genshi 模板,我试图在 xsl:fo 模板中应用几个覆盖:

<py:match path="fo:page-sequence[@master-reference='invoice-sequence']"> ... </py:match> <xi:include href="main.xml" />

.. 这很好用,但是当我提供多个 py:match 标签时,如下所示:

<py:match path="fo:page-sequence[@master-reference='invoice-sequence']"> ... </py:match> <py:match path="fo:block[@id='dateF']"> ... </py:match> <xi:include href="main.xml" />

只有最后一个 py:match 有效。我可以移动 xi:include ,它似乎只受到它正上方的 py:match 的影响,而不是在顶部。我希望工作的是顶部的包含,它启动流,然后 py:matches 在它之后修改流,但这似乎不是这种情况,因为 py:matches 只有在它们'放在 xi:include 之前

有人可以向我解释如何实现我对 xi:include 使用多个 py:match 的目标吗?如果有一些关于包含和 py:match 的理论,我也会喜欢它,这样我就可以理解为什么这种行为是这样的。

4

1 回答 1

0

根据https://groups.google.com/forum/#!topic/genshi/VIUhr-W3Un4

""" Hodgestar
8/6/13 我认为这就是预期的工作方式——匹配模板一个接一个地应用,并且不记得 XML 的先前状态(我什至不确定如何定义这种情况下的行为)。 """

这导致我寻找一种重置上下文的方法。也许使用多个 xi:include,每个 py:match 一个?[这个想法可以帮助其他人解决这个问题]

于 2014-10-21T21:31:15.943 回答