<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                exclude-result-prefixes="xs" version="2.0">

<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
  <xsl:variable name="data" select="unparsed-text('data.txt')"/>

  <xsl:variable name="dated" as="node()*">
    <xsl:analyze-string select="$data" regex="\d+-\d+-\d+">
      <xsl:matching-substring>
	<date>
	  <xsl:value-of select='format-date(xs:date(.),                 "[MNn,*-3] [D01], [Y0001]")'/>
	</date>
      </xsl:matching-substring>
      <xsl:non-matching-substring>
	<xsl:analyze-string select="." regex="===">
	  <xsl:matching-substring>
	    <eog/>
	  </xsl:matching-substring>
	  <xsl:non-matching-substring>
	    <xsl:value-of select="."/>
	  </xsl:non-matching-substring>
	</xsl:analyze-string>
      </xsl:non-matching-substring>
    </xsl:analyze-string>
  </xsl:variable>

  <xsl:for-each-group select="$dated" group-starting-with="date">
    <day>
      <xsl:copy-of select="current-group()"/>
    </day>
  </xsl:for-each-group>
</xsl:template>
  
</xsl:stylesheet>