Re: [xsl] Empty input in analyze-string

Subject: Re: [xsl] Empty input in analyze-string
From: "Mathieu Malaterre" <mathieu.malaterre@xxxxxxxxx>
Date: Fri, 4 Jul 2008 15:35:32 +0200
On Fri, Jul 4, 2008 at 3:30 PM, Joe Fawcett <joefawcett@xxxxxxxxxxx> wrote:
> Seems to me that the empty string doesn't match or mismatch:
>
> <data>
>  <para>C.1</para>
>  <para>F.1</para>
>  <para></para>
>  <para>H.1</para>
>  <para>F.2</para>
> </data>
>
> <xsl:stylesheet version="2.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
>  <xsl:template match="/">
>   <xsl:variable name="myregex">^([CF]\.[0-9\.]+)\s*(.*)$</xsl:variable>
>   <output>
>     <xsl:for-each select="data/para">
>       <input><xsl:value-of select="."/></input>
>       <xsl:analyze-string select="." regex="{$myregex}">
>         <xsl:matching-substring>
>           <match>
>             <xsl:value-of select="."/>
>           </match>
>         </xsl:matching-substring>
>         <xsl:non-matching-substring>
>           <nonmatch>
>             <xsl:value-of select="."/>
>           </nonmatch>
>         </xsl:non-matching-substring>
>       </xsl:analyze-string>
>     </xsl:for-each>
>   </output>
>  </xsl:template>
> </xsl:stylesheet>
>
> I get (with Saxon 9.1):
> <output>
>  <input>C.1</input>
>  <match>C.1</match>
>  <input>F.1</input>
>  <match>F.1</match>
>  <input/>
>  <input>H.1</input>
>  <nonmatch>H.1</nonmatch>
>  <input>F.2</input>
>  <match>F.2</match>
> </output>

How, ok I did not realized that, it was simply going through.

So how do I make it a non-match ?

thanks,
-- 
Mathieu

Current Thread