Это очень просто: используйте преобразование идентичности и создайте шаблон, который преобразует атрибут name
:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@name">
<xsl:attribute name="id">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
Это оставит все в документе, кроме атрибутов name
, такими, какие они есть. Если вы хотите изменить только атрибут name
для элементов person
, поместите более строгий XPath в атрибут match
шаблона, например person/@name
.