XSL 1.0方法匹配包含文本的消息

时间:2014-09-05 00:14:59

标签: xml xslt contains

我想要使用xslt 1.0匹配一些xml:

XML如下所示(在不同级别的整个xml中有多行):

<message level="Info">
    <![CDATA[progress-update merp]]>
</message>
<message level="Info">
    <![CDATA[Some other data]]>
</message>

我只想匹配并选择包含字符串&#39; progress-update&#39;的邮件的文本。所以期望的输出是

progress-update merp

我尝试了以下但是没有用......

<xsl:template match="message">
    <span>
        <xsl:value-of select="text()[contains(text(),'progress-update')]" />
    </span>
    <br />
</xsl:template>

我也尝试过:

<xsl:template match="message[contains(text(),'progress-update')]">
    <span>
        <xsl:value-of select="text()" />
        <br />
    </span>
    <br />
</xsl:template>

但我似乎得到了一些消息文本,其中不包含进度更新,并且输出没有连接。也许这是因为它与上述不匹配?如何阻止匹配所有其他行。

1 个答案:

答案 0 :(得分:0)

卫生署!我想到了。我只需要在该块下面为“message”添加另一个匹配项以匹配所有其他消息,并且不对它们执行任何操作。