Поскольку XSLT имеет встроенных шаблонных правил , которые применяются при отсутствии явного шаблона. Встроенный шаблон для атрибутов:
<xsl:template match="@*">
<xsl:value-of select="."/>
</xsl:template>
, что совпадает с вашим явным шаблоном для атрибута model
, поэтому все атрибуты в конечном итоге обрабатываются одинаково.
Если вам нужен только атрибут model
, попробуйте:
<xsl:template match="car">
<xsl:apply-templates select="@model" />
</xsl:template>
Обратите внимание, что два других ваших шаблона являются избыточными, так как они точно так же, как встроенный шаблон для элементов.