Seu XML é inválido. Usa \
em vez de /
nas tags finais.
Para analisar XML, use uma ferramenta com reconhecimento de XML. Eu sei que você disse que tem restrições no sistema em que está, mas vou lhe dar uma solução que funcionará uma vez que você convencer seu gerente / qualquer que seja para operação robusta e confiável, você precisa instalar o XMLStarlet para fazer Análise XML.
Com o XMLStarlet, dado o arquivo XML
<?xml version="1.0"?>
<root>
<headertag>
<subtag/>
</headertag>
<headertag>
<subtag>Don't delete me!</subtag>
</headertag>
<headertag>
</headertag>
<headertag>
Not empty
</headertag>
</root>
o seguinte remove todas as tags vazias, independentemente de seus nomes ou em que lugar do documento elas ocorrem:
$ xml ed -d '//*[not(normalize-space())]' file.xml >newfile.xml
$ cat newfile.xml
<?xml version="1.0"?>
<root>
<headertag>
<subtag>Don't delete me!</subtag>
</headertag>
<headertag>
Not empty
</headertag>
</root>
O comando xml
às vezes pode ser chamado de xmlstarlet
dependendo de como ele é empacotado em seu sistema.
O XMLStarlet está disponível aqui: link ... mas veja se o seu gerenciador de pacotes padrão o possui primeiro.