我有一个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
内以格式化的方式显示变量的内容。
答案 0 :(得分:1)
您需要处理器扩展才能完成这项工作,因此答案取决于您使用的是哪个XSLT处理器。
答案 1 :(得分:0)
我需要尝试一下,但我相信你可以做到以下
<xsl:if test="fn:contains($outputString, '<(.*)>.*<\1>')>
</xsl:if>
或者在您的情况下,我宁愿使用选择标记。
fn:contains()适用于XSLT 2.0,我不确定天气会接受该格式的正则表达式。甚至更多,因为有些地方使用$ 1而不是\ 1来引用组值。
如果您正在引用可以检测到它的XML或HTML。