2011-10-05 13 views
6

कोड नीचे अपेक्षित काम करता है और जब पाठ में इंटरनेट मौजूद होता है तो यह मेल खाता है।विश्लेषण-स्ट्रिंग मेल नहीं खाता है जब regex एक चर

<xsl:template name="IndexTerm"> 
    <xsl:param name="matchedRegex"> 
     <xsl:text>(.*)(Internet)(.*)</xsl:text> 
    </xsl:param> 
    <xsl:param name="text"></xsl:param> 
    <xsl:analyze-string select="$text" regex="(.*)(Internet)(.*)" flags="m"> 
     <xsl:matching-substring> 
      <xsl:call-template name="IndexTerm"> 
       <xsl:with-param name="text"> 
        <xsl:value-of select="regex-group(1)"></xsl:value-of> 
       </xsl:with-param> 
      </xsl:call-template> 
       <xsl:element name="a"> 
        <xsl:attribute name="id"> 
         <xsl:value-of select="generate-id($text)"></xsl:value-of> 
        </xsl:attribute> 
        <xsl:value-of select="regex-group(2)"></xsl:value-of> 
       </xsl:element> 
       <xsl:value-of select="regex-group(3)"></xsl:value-of> 
     </xsl:matching-substring> 
     <xsl:non-matching-substring> 
      <xsl:value-of select="."></xsl:value-of> 
     </xsl:non-matching-substring> 
    </xsl:analyze-string> 
</xsl:template> 

जब लाइन:

<xsl:analyze-string select="$text" regex="$matchedRegex" flags="m"> 

यह अब regex से मेल खाता:

<xsl:analyze-string select="$text" regex="(.*)(Internet)(.*)" flags="m"> 

साथ बदल दिया है। मुझे इसे एक परम के रूप में पारित करने की आवश्यकता है। क्या यह काम करने के लिए वैसे भी है?

उत्तर

8

एक विशेषता मान टेम्पलेट का उपयोग करें

regex="{$matchedRegex}" 
संबंधित मुद्दे