Ниже я пытаюсь сопоставить определенные узлы.
<xsl:template match="nodes">
<element>
<xsl:apply-templates select="nodes" mode="different" />
</element>
</xsl:template>
Теперь есть несколько способов обработки одних и тех же узлов. Я хочу использовать этот другой способ обработки внутри текущего способа обработки. Вот почему я выполняю apply-templates
для того же выбора, что и nodes
, однако теперь mode
отличается.
Вот как может выглядеть другой режим:
<xsl:template match="nodes" mode="different">
<!-- another way of processing these nodes -->
</xsl:template>
Теперь это не работает. Обрабатывается только первый тип обработки и вызов apply-templates
просто не применяется.
Чтобы быть немного более конкретным:
<xsl:template match="Foundation.Core.Association.connection">
<xsl:for-each select="Foundation.Core.AssociationEnd">
<someElement>
<xsl:apply-templates select="Foundation.Core.Association.connection" mode="different" />
</someElement>
</xsl:for-each>
</xsl:template>
Как видите, я выбираю Foundation.Core.Association.connection
. Конечно, это неправильно, но как мне обратиться к этому элементу, учитывая текущий элемент и позицию? Учитывая его комментарий Дерека, это должно сработать.
Что я делаю неправильно, как я могу получить то, что хочу, используя XSLT? Каким еще может быть подход к решению этой проблемы?
Спасибо.