Это код у меня есть:Применить-шаблоны
<xsl:template match="*">
<Segment ID="{name()}">
<xsl:value-of select="concat(., ' ')"/>
</Segment>
</xsl:template>
<xsl:template match="*" mode="break">
<Segment ID="{name()}">
<xsl:value-of select="."/>
</Segment>
<Segment>#$NL</Segment>
</xsl:template>
Есть ли способ, чтобы вызвать первый шаблон внутри второго шаблона, так что я не должен повторять код? Что-то вроде этого:
<xsl:template match="*" mode="break">
<xsl:apply-templates select="*"/>
<Segment>#$NL</Segment>
</xsl:template>
Я использую * здесь и не работает. Я пробовал @ * и /, но ничего не работает. Цель для меня назвать это так:
<xsl:apply-templates select="FirstName"/>
или
<xsl:apply-templates select="Name" mode="break"/>
Ничего себе, это работает. Благодарю. Я думал, что если я использую атрибут name, я должен использовать параметр. Думаю, мне нужно больше узнать о теге call-template. – Johnny
Шаблон, вызываемый с помощью 'call-template', будет выполняться в контексте текущего узла, поэтому это удобный способ иметь несколько общих шаблонов для общих функций. – JLRishe
Вы также можете использовать режимы и выполнять ' 'для достижения такого же эффекта. –