If the XML is:
<x>
<DATE>07/18/2006</DATE>
<DATE>07/12/2006</DATE>
<DATE>09/25/2006</DATE>
<DATE>10/24/2006</DATE>
<DATE>10/18/2006</DATE>
<DATE>10/10/2006</DATE>
<DATE>10/02/2006</DATE>
<DATE>01/19/2006</DATE>
</x>
and, XSLT is:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/x">
<result>
<xsl:for-each select="DATE">
<xsl:if test="matches(.,'[0-1][0-2]/[0-3][0-9]/2006')">
<bad-date><xsl:value-of select="." /></bad-date>
</xsl:if>
</xsl:for-each>
</result>
</xsl:template>
</xsl:stylesheet>
and if the XSLT processor produces output:
<?xml version="1.0" encoding="UTF-8"?>
<result>
<bad-date>10/24/2006</bad-date>
<bad-date>10/18/2006</bad-date>
<bad-date>10/10/2006</bad-date>
<bad-date>10/02/2006</bad-date>
<bad-date>01/19/2006</bad-date>
</result>
I feel, XSLT processor is compliant. And this is exactly what Saxon
8.8J is doing.
On 1/19/07, cknell(_at_)onebox(_dot_)com <cknell(_at_)onebox(_dot_)com> wrote:
I have a date element:
example
<DATE>11/01/2006</DATE>
I'm trying to write an XPath 2.0 Regex to winnow some of the more obvious date
format errors. I have tried for about a half-hour, and I admit to being stumped.
Here is the relevant part of the template:
<xsl:when test="matches(DATE,'[0-1][0-2]/[0-3][0-9]/2006')"><bad-date
/></xsl:when>
These dates passed the test:
<DATE>07/18/2006</DATE>
<DATE>07/12/2006</DATE>
<DATE>09/25/2006</DATE>
While these failed:
<DATE>10/24/2006</DATE>
<DATE>10/18/2006</DATE>
<DATE>10/10/2006</DATE>
<DATE>10/02/2006</DATE>
<DATE>01/19/2006</DATE>
It appears any value with a "1" in either the first or second position is
failing.
What I am trying to achieve is:
First character is either a "0" or "1"
Second character is in the range of 0-2
Third character is "/"
Fourth character is in the range of 0-3
Fifth character is in the range of 0-9
Sixth character is "/"
Text ends with the string "2006".
Can someone point out where I'm going wrong?
Thanks.
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
--
Regards,
Mukul Gandhi
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--