在XML中显示转义的html标记以及XSLT中的非转义标记

时间:2013-06-14 11:50:26

标签: html xml xslt escaping value-of

我的XML文件中有这些转义标记:<strong> - >整个xml是这样的:

<test>
<TEST2>
     <li>&lt;strong&gt;blablablabla</li>
</TEST2>
<test>

我想以强大和粗体字母(如此)显示文字,我想显示列表项目项目符号。现在我只设法以粗体和粗体字母显示文本或者我可以显示列表项目项目符号,但我从未设法正确显示它们。所以我的问题是:我怎样才能以正确的方式展示它们?

首先,我尝试了<xsl:value-of select="/test/TEST2" disable-output-escaping="yes" />,它向我展示了斜体和粗体版本的文本,但是,它没有输出列表项目项目符号,因为它只输出了原始<li>标记。 。

然后,我尝试了显示列表项目符号的<xsl:copy-of-select="/test/TEST">,但这一次,它还输出了原始<strong> and <em>标记。

此外,复制选择,与disable-output-escaping结合使用不起作用。

我该怎么做才能正确展示它们?

示例输出:

*<em><strong>blalblblbal</strong></em>如果我使用第二个。

如果我使用第一个:

blalblblbal

1 个答案:

答案 0 :(得分:0)

好用

<xsl:template match="li">
  <xsl:copy>
    <xsl:value-of select="." disable-output-escaping="yes"/>
  </xsl:copy>
</xsl:template>

当然还有li祖先的其他模板,根据需要生成olul并处理子元素,例如

<xsl:template match="test">
  <ul>
    <xsl:apply-templates/>
  </ul>
</xsl:template>

但是,对于Mozilla浏览器中的客户端XSLT,不支持disable-output-escaping。通常XSLT处理器不需要支持它。