Я не вижу, как применить шаблоны ко всем другим типам узлов
Все просто:
<xsl:apply-templates select="*[not(self::title)]"/>
То есть создайте свой первый шаблон:
<xsl:template match="/text">
<html>
<head/>
<body>
<xsl:apply-templates select="title"/>
<div style="border: 3px solid blue;">
<xsl:apply-templates select="*[not(self::title)]"/>
</div>
</body>
</html>
</xsl:template>
затем добавьте шаблоны для обработки title
, para
, image
и любого другого узла, который может появиться на входе.
В качестве альтернативы, если у вас есть список всех узлов, которые могут появиться во входных данных, примените к ним шаблоны явно:
<xsl:template match="/text">
<html>
<head/>
<body>
<xsl:apply-templates select="title"/>
<div style="border: 3px solid blue;">
<xsl:apply-templates select="para | image | other | another"/>
</div>
</body>
</html>
</xsl:template>