需要验证字符串,无论它是否包含使用xslt的html或xml

时间:2011-04-21 19:55:24

标签: xslt xpath xslt-1.0

我有一个xsl:variable,其内容可能是HTML或XML或二进制文件。

我在html页面的textarea中显示变量的值。

如果变量包含HTML或XML数据,则会在textarea中显示未格式化的内容。

<xsl:variable name="outputString">
//html or xml or binary data goes in here
</xsl:variable>
<xsl:template match="/">
<html>
<body>
<textarea name="output" cols="20" rows="20">
<xsl:value-of select="$outputString" />
</textarea>
</body>
</html>
</xsl:template>

如果内容是HTML或XML,我只需要在textarea内以格式化的方式显示变量的内容。

2 个答案:

答案 0 :(得分:1)

您需要处理器扩展才能完成这项工作,因此答案取决于您使用的是哪个XSLT处理器。

答案 1 :(得分:0)

我需要尝试一下,但我相信你可以做到以下

<xsl:if test="fn:contains($outputString, '<(.*)>.*<\1>')>
</xsl:if>

或者在您的情况下,我宁愿使用选择标记。

fn:contains()适用于XSLT 2.0,我不确定天气会接受该格式的正则表达式。甚至更多,因为有些地方使用$ 1而不是\ 1来引用组值。

如果您正在引用可以检测到它的XML或HTML。