2012-06-13 5 views
1

정규식 일치를 수행하고 바꾸기 위해 matches 함수를 사용하려는 XSLT 변환을 작성했습니다.XSLT matches() 함수를 찾을 수 없습니다.

Visual Studio 2008에서 'matches()'는 알 수없는 XSLT 기능입니다.

<xsl:when test="matches(normalize-space(.),'^([(]I[)])(.+)')"> 
        <xsl:analyze-string select="normalize-space(.)" regex="^^([(]I[)])(.+)" 
         flags="x"> 
         <xsl:matching-substring> 
          <xsl:variable name="paraNumber"> 
           <xsl:value-of select="regex-group(1)"/> 
          </xsl:variable> 
          <xsl:variable name="text"> 
           <xsl:value-of select="regex-group(2)"/> 
          </xsl:variable> 
          <span class="upper-I-double-bracket"> 
           <xsl:value-of select="$paraNumber"/> 
          </span> 
          <xsl:value-of select="$text"/> 
         </xsl:matching-substring> 
        </xsl:analyze-string> 
       </xsl:when> 
+4

'matches()'는 XSLT 2.0부터 지원됩니다. Windows의 기본 XSLT 파서는 표준 버전 1.0 만 지원합니다. –

답변

2

비주얼 스튜디오 (모든 현재 알려진 버전)는 .NET XSLT 1.0 프로세서 XslCompiledTransform 또는 (VS2005 이전 버전) 이전 된 XslTransform을 사용합니다. 이들은 XSLT 1.0 프로세서입니다.

xsl:analyze-string은 XSLT 2.0 이상에서만 지원되며 이로 인해받는 오류 메시지에 대해 설명합니다.

.NET 환경에서 XSLT 2.0 프로세서를 사용해야하는 경우 .NET 용으로 특별히 개발 된 Saxon.NET 또는 XQSharp XSLT 2.0 프로세서 중 하나를 선택할 수 있습니다.

관련 문제