Extending ideas from http://robbertbroersma.nl/blog/the-web-needs-xml-the-good-parts/
Stringtemplate script:
<script type="stringtemplate">
<ul>
<for-each select="$blogpost/tag" sort reversed group-by=".">
<li>{{.}}</li>
</for-each>
</ul>
</script>
Make it recursive:
<script type="stringtemplate" recursive>
<ul>
<for-each select="$blogpost/tag" sort reversed group-by=".">
<li>{{.}}</li>
</for-each>
</ul>
</script>