找不到 XSLT matches() 函数
本文关键字:函数 matches XSLT 找不到 | 更新日期: 2023-09-27 18:37:14
我正在编写一个 XSLT 转换,我希望在其中使用 matches 函数进行正则表达式匹配和替换。
"匹配 ()"的 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>
Visual studio(所有当前已知的版本)使用.NET XSLT 1.0处理器XslCompiledTransform或(VS2005之前的版本)较旧的XslTransform。这些是 XSLT 1.0 处理器。
该xsl:analyze-string
仅受 XSLT 2.0+ 支持,这解释了您收到的错误消息。
可以选择专门为 .NET 开发的 Saxon.NET 或 XQSharp XSLT 2.0 处理器之一。