1

マッチ関数を使用して正規表現のマッチと置換を行う XSLT 変換を作成しています。

「() に一致」する Visual Studio 2008 は不明な 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

1 に答える 1

2

Visual Studio (現在知られているすべてのバージョン) は、.NET XSLT 1.0 プロセッサ XslCompiledTransform または (VS2005 より前のバージョン) 古い XslTransform を使用します。これらは XSLT 1.0 プロセッサです。

xsl:analyze-stringXSLT 2.0+ でのみサポートされており、表示されるエラー メッセージについて説明しています。

.NET 環境で XSLT 2.0 プロセッサを使用する必要がある場合は、特に .NET 用に開発された Saxon.NET または XQSharp XSLT 2.0 プロセッサのいずれかを選択できます。

于 2012-06-13T13:13:34.090 に答える