XML:
<Root>
<Elements>
<Element>el1</Element>
<Element>el2</Element>
</Elements>
<Elements>
<Element>el1</Element>
<Element>el2</Element>
</Elements>
</Root>
Попытка сгенерировать, чтобы применить два разных шаблона для одного и того же элемента.
Основной шаблон:
<xsl:stylesheet version="1.0">
<xsl:template match="/Root">
At root level
<xsl:apply-templates select="Elements">
<h1>Render something more</h1>
<xsl:apply-templates select="Elements" mode="1:Custom">
</xsl:template>
<!-- This doesn't render though it is called above-->
<xsl:template match="Elements">
render something here
</xsl:template>
<!-- This renders twice -->
<xsl:template match="Elements" mode="1:Custom">
render something else here
</xsl:template>
</xsl:stylesheet>
Если я добавлю режим к первому шаблону, оба не будут отображаться.
Также пробовал:
<xsl:apply-templates select="Elements" mode="1:Custom" />
с другим шаблоном для применения в качестве:
<xsl:apply-templates select="Elements" mode="Different" />
Только один из двух (отображается первый, в котором указан режим).
то есть
<xsl:template match="Elements">
</xsl:template>
не рендерит
или
<xsl:template match="Elements" mode="Different" />
рендерит дважды.
Как мне это исправить? Повсюду, где я проводил исследования, он предлагает сделать приоритет моде. Должно быть что-то простое, так как многие программисты используют его?