date xslt xslt-1.0

date - XSLT 1.0 Comparar fechas



xslt-1.0 (1)

Suponiendo que las fechas están en formato aaaa-mm-dd (como entiendo son de su otra pregunta), esto debería funcionar con la mayoría de los procesadores XSLT 1.0:

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date"> ... <xsl:for-each select="forms/form"> <xsl:variable name="today" select="translate(substring-before(date:date-time(), ''T''), ''-'', '''')"/> <xsl:variable name="start" select="translate(start, ''-'', '''')"/> <xsl:variable name="end" select="translate(end, ''-'', '''')"/> <xsl:if test="$start &lt;= $today and $today &lt;= $end"> <!-- in progress --> </xsl:if>

Quiero comparar la fecha actual con una fecha de inicio y una fecha de finalización.

XML es:

<forms> <form id="11"> <start>somedate</start> <end>someotherdate</end> </form> </forms>

Actualmente estoy intentando:

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ex="http://exslt.org/dates-and-times" extension-element-prefixes="ex" > <xsl:choose> <xsl:when test="end != '''' and start != '''' and ex:date(start) &lt;= current-date() and current-date() &lt;= ex:date(end)"> <!-- Do Stuff --> </xsl:when> </xsl:choose>

Obtuve el siguiente error:

xmlXPathCompOpEval: function current-date not found XPath error : Unregistered function XPath error : Stack usage errror <ul class="ccb_forms_ul"></ul>