<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 >

<xsl:output method="text"/>

<xsl:template match="logentry">
<xsl:variable name="date" select="substring(date/text(), 1, 10)"/>
<xsl:variable name="time" select="substring(date/text(), 12, 8)"/>
# Date: <xsl:value-of select="concat($date, ' ')"/> <xsl:value-of select="$time"/>
<xsl:choose>
<xsl:when test="msg/text()">
# Message: <xsl:value-of select="msg/text()"/>
<xsl:value-of select="'&#x0A;'"/>
</xsl:when>
<xsl:otherwise>
# Message: .
</xsl:otherwise>
</xsl:choose>

<xsl:for-each select=".//path[@action='M']">
<xsl:sort select="text()"/>
M <xsl:value-of select="text()"/>
</xsl:for-each>
<xsl:for-each select=".//path[@action='A']">
<xsl:sort select="text()"/>
A <xsl:value-of select="text()"/>
</xsl:for-each>
<xsl:for-each select=".//path[@action='D']">
<xsl:sort select="text()"/>
D <xsl:value-of select="text()"/>
</xsl:for-each>

</xsl:template>

</xsl:stylesheet>
