XSLT / Xalan: вызов apply-шаблонов из расширения Java - PullRequest
0 голосов
/ 14 декабря 2009

Я использую Xalan и Java для расширения таблицы стилей.

(Пример, аналогичный тому, что я там делаю: Пример словаря )

Я изо всех сил стараюсь, чтобы мой тег сделал <xsl:apply-templates/>. Я хочу иметь это:

<xsl:template match="sometag">
    <my-java:tag>
        <xsl:apply-tempates/>
    </my-java:tag>
</xsl:template>

Мой класс Java, содержащий метод tag(XSLProcessorContext context, ElemExtensionCall elem), создает элемент myElem, который подается в контекст следующим образом:

context.outputToResultTree(context.getStylesheet(), myElem);

Но я хочу применить шаблоны, определенные в таблице стилей, к подэлементам myElem.

Как я могу запустить <xsl:apply-templates/> из моего класса Java? Возможно ли это?

1 Ответ

0 голосов
/ 03 января 2010

В Xalan я делаю

TransformerImpl transf = context.getTransformer();
for ( int i = fromValue; i <= toValue; i++ )  {
  setInt(variable, i);
  transf.executeChildTemplates(elem, true );
}

Идея состоит в том, чтобы выполнить цикл for (значения from и to), повторяя код внутри этого x раз. Не уверен насчет «true» на executeChildTemplates, хотя - похоже, работает.

...