Ответ 1
Это очень просто: используйте преобразование идентификатора и создайте шаблон, который преобразует атрибут 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
.