Я считаю, что следующее должно работать. Вы можете удалить свой шаблон для h1
, так как он будет лишним:
<xsl:template match="h1/node()[1][self::text()]">
<xsl:attribute name="title">
<xsl:value-of select="." />
</xsl:attribute>
</xsl:template>
Этот шаблон соответствует текстовому узлу, когда он является первым дочерним узлом h1
, и заменяет его на * 1006. * атрибут, значение которого равно значению текстового узла.