xslt xsl:analyser-chaîne et de l'expression regex

J'ai un fichier xml dans lequel je dois trouver des modèles et de mettre un " marques autour de la correspondance de modèle spécifique.

<xml>
<foo>
    <id>1</id>
    <description>This is section 1, this is section 1 or 2, this is section 1 and 2</description>
</foo>
</xml>

Maintenant dans le fichier que j'ai pour trouver un modèle de "section 1" , "section 1 ou de la 2" et la section "1 et 2" et de mettre un " marques autour de la reconnaissance des mots.

J'ai écrit une transformation xslt qui est comme ceci:

  <xsl:template match="text()">

<xsl:analyze-string select="." regex="section\s\d+|section\s\d+\s+or\s+\d|section\s\d+\s+and\s+\d">
  <xsl:matching-substring>
    <xsl:if test="matches(.,'section\s\d+')" >
      <xsl:text>"</xsl:text>
      <xsl:value-of select="."/>     
      <xsl:text>"</xsl:text>       
    </xsl:if>
    <xsl:if test="matches(.,'section\s\d+\s+or\s+\d')" >
      <xsl:text>"</xsl:text>
      <xsl:value-of select="."/>     
        <xsl:text>"</xsl:text>       
    </xsl:if>
    <xsl:if test="matches(.,'section\s\d+\s+and\s+\d')" >
      <xsl:text>"</xsl:text>
      <xsl:value-of select="."/>     
      <xsl:text>"</xsl:text>       
    </xsl:if>
  </xsl:matching-substring>
  <xsl:non-matching-substring>
    <xsl:value-of select="current()"/>
  </xsl:non-matching-substring>
</xsl:analyze-string>
 </xsl:template>

Le problème, je suis confronté ici est le modèle "section 1" correspond à tous les autres modèle ainsi donc, je ne suis pas l'obtention d'un désir résultat

La transformation ci-dessus résultat est

<xml>
  <foo>
      <id>1</id>
      <description>This is "section 1", this is "section 1" or 2, this is "section 1" and 2</description>
  </foo>
</xml>

où, comme je veux cette sortie.

<xml>
  <foo>
    <id>1</id>
    <description>This is "section 1", this is "section 1 or 2", this is "section 1 and 2"</description>
   </foo>
</xml>

Toutes les idées sur la façon de mettre en œuvre... et le désir résultat.

Grâce.

InformationsquelleAutor atif | 2012-03-29