Только что возникла та же проблема с XSL в PHP 5, с выходом / @ method = html. Кажется, что присвоение пустого атрибута значения приведет к тому, что элементы будут выводиться как недопустимые несамозакрывающиеся, незамкнутые теги:
<input type="text" name="foo" value="{my-empty-value}" />
Результат:
<input type="text" name="foo" value="">
Одним из возможных решений является условное добавление атрибута:
<xsl:if test="string-length(my-empty-value) > 0">
<xsl:attribute name="value">
<xsl:value-of select="my-empty-value" />
</xsl:attribute>
</xsl:if>
в результате:
<input type="text" name="foo" />