Правильнее будет его не добавлять.
Можно снести его значение напр:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="utf-8" version="1.0"/>
<xsl:template match="/">
<div data-attr="data-value">
<xsl:attribute name="data-attr"/>
<p>test</p>
</div>
</xsl:template>
</xsl:stylesheet>
Result:
<div data-attr=""><p>test</p></div>
Но неясно зачем нужен такой изврат. Можно же добавлять атрибут при определённых условиях (вместо его удаления при противоположных условиях)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="utf-8" version="1.0"/>
<xsl:template match="/">
<div>
<xsl:if test="true()">
<xsl:attribute name="data-attr">value</xsl:attribute>
</xsl:if>
<p>test</p>
</div>
<div>
<xsl:if test="false()">
<xsl:attribute name="data-attr">value</xsl:attribute>
</xsl:if>
<p>test</p>
</div>
</xsl:template>
</xsl:stylesheet>
Result:
<div data-attr="value"><p>test</p></div>
<div><p>test</p></div>