Я использую следующее всякий раз, когда хочу предотвратить самозакрытие элемента:
<xsl:value-of select="''" />
Это обманывает механизм рендеринга, полагая, что внутри элемента есть содержимое, и, следовательно, предотвращает самозакрытие.
Это немного уродливое исправление, поэтому я рекомендую включать его в описательный шаблон и вызывать каждый раз вместо этого:
<xsl:template name="PreventSelfClosure">
<xsl:value-of select="''" />
</xsl:template>
<div class="test">
<xsl:call-template name="PreventSelfClosure"/>
</div>
После этого отобразится следующее:
<div class="test"></div>
http://curtistimson.co.uk/post/xslt/how-to-prevent-self-closing-elements-in-xslt/