使用xslt查找文本中的关键字

使用xslt查找文本中的关键字,xslt,Xslt,我想写一个样式表,突出显示文本中的关键字 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <xsl:para

我想写一个样式表,突出显示文本中的关键字

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <xsl:template match="/">
        <xsl:param name="keyword">keyword</xsl:param>
        <html>
            <body>
                <xsl:for-each select="element()">
                <xsl:variable name="elValue" select="."/>
                    <xsl:analyze-string select="upper-case(.)" regex="{upper-case($keyword)}*">
                        <xsl:matching-substring>
                            <i>
                                <xsl:value-of select="."/>
                            </i>
                        </xsl:matching-substring>
                        <xsl:non-matching-substring>
                            <xsl:value-of select="."/>
                        </xsl:non-matching-substring>
                    </xsl:analyze-string>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

关键词
我用过正则表达式

我的问题是:整个html输出现在是大写的。我曾尝试使用变量elValue保存原始值,但这不起作用。该变量似乎在每个循环中附加新值(并且不仅包含新值)

是否有方法输出元素的原始格式(无大写)


提前感谢,

您可能只想在i.e.上使用
i
标志



考虑发布一个最小但完整的XML输入示例,以及您希望使用XSLT为该示例创建的HTML结果,然后我们可以展示正确的XSLT方法。到目前为止,您只展示了一些XSLT,它们不能满足您的需要,而不允许我们看到您运行它所针对的输入。正确的方法-尽管我不知道“*”是什么应该是在regex属性中执行的。星号字符在原始代码中,我也不完全理解,所以我只是在进行大写转换时编辑了这些内容,并保留了所有其他内容不变。
                <xsl:analyze-string select="." regex="{$keyword}*" flags="i">
                    <xsl:matching-substring>
                        <i>
                            <xsl:value-of select="."/>
                        </i>
                    </xsl:matching-substring>
                    <xsl:non-matching-substring>
                        <xsl:value-of select="."/>
                    </xsl:non-matching-substring>
                </xsl:analyze-string>