2014-10-21 2 views
0

У меня есть основной Genshi шаблон, который я пытаюсь применить несколько переопределения в XSL: FO шаблона:Почему py: match применим только к xi: include непосредственно после него?

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

.. Это работает хорошо, но когда я обеспечиваю более одного ру: матч тег, например:

<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" />

только последний пй: матч будет работать. Я могу перемещать xi: include вокруг, и на него, похоже, влияет только py: match непосредственно над ним, а вовсе нет наверху. То, что я ожидал бы работать, это включить вверху, который запускает поток, а затем py: сопоставляет после него изменение потока, но это, похоже, не так, поскольку py: соответствует только работе, если они ', помещенный перед xi: include

Может ли кто-нибудь объяснить мне, как выполнить мою задачу использования нескольких команд: сопоставление с xi: include? Мне также понравилось бы, если бы была какая-то теория о включении и py: match, чтобы я мог понять, почему такое поведение выглядит так.

ответ

0

По https://groups.google.com/forum/#!topic/genshi/VIUhr-W3Un4:

«»» Hodgestar
8/6/13 Я думаю, что это, как вещи будут работать - шаблоны матчей применяются один за другим, и предыдущий состояние XML не помню (я даже не знаю, как определить поведение в таком сценарии). «»»

Что приводит меня искать пути к Рез и контекст. Возможно, используя несколько xi: include, по одному для каждого py: match? [Эта идея может помочь другим понять это)

+0

Несколько xi: включает в себя только один и тот же файл несколько раз, в моем случае вызывает несколько fo: root узлов. Стоит попробовать, хотя, и оценить ссылку! – Micah