Это простое преобразование XSLT 1.0 :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:umod="http://www.unimod.org/xmlns/schema/unimod_2"
>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="/*/umod:modifications/umod:mod">
<xsl:sort select="@date_time_modified" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="@date_time_modified"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
при применении к документу XML, содержащемуся в : http://www.unimod.org/xml/unimod.xml (документ содержит почти 23000 строк и не подходит для включения в строку) ...
дает требуемый, правильный результат (дата последнего изменения):
2012-02-15 12:08:24
Заметьте : Никаких специальных манипуляций со строкой даты не требуется (даже преобразование в число), потому что в этом конкретном случае дата находится в «хорошем» формате и может быть просто отсортирована в виде строки.