En XSLT el tractament dels salts de carro difereix entre elements i atributs. En el primer cas s'aplica tal qual és al document XML original però en el segon el mostra com una entitat (&#A;).
Això és degut a que XML 1.0 obliga que els salts de carro en atributs es normalitzin a espais i que els salts de carro que no es normalitzin s'expressin com a entitat (&#A;).
És a dir, donat un XML tal que:
<aaa>Lorem Ipsum
dolor sit amet.</aaa>
A l'aplicar un XSLT tal que:
<xsl:element name="p">
<xsl:value-of select="//aaa"/>
</xsl:element>
o simplificat:
<p>
<xsl:value-of select="//aaa"/>
</p>
S'obté una sortida tal que:
<p>Lorem Ipsum
dolor sit amet.</p>
En canvi, a l'aplicar un XSLT tal que:
<xsl:element name="p">
<xsl:attribute name="title">
<xsl:value-of select="//aaa"/>
</xsl:attribute>
</xsl:element>
O simplificat:
<p title="{//aaa}"></p>
S'obté una sortida tal que:
<p title="Lorem Ipsum &#A;dolor sit amet."/>
Solució
Per evitar obtenir aquesta entitat, cal normalitzar:
<p title="{normalize-space(//aaa)}"></p>
Amb la qual cosa s'obté una sortida tal que:
<p title="Lorem Ipsum dolor sit amet."/>