XSL:显示未转义的HTML

时间:2011-11-06 03:51:07

标签: xslt symphony-cms

我有这个xml

<entry id="1008" section="articles">
    <excerpt><p>&#8230; in Richtung „Aus“ für Tierversuche. Kosmetik-Fertigprodukte dürfen bereits seit 2004 nicht mehr im Tierversuch ge<strong>test</strong>et werden. Trotzdem litten Tiere weiterhin für die Schönheit. Mit einer im März 2009 in Kraft getretenen Regelung&#8230; Riegel vor:
EU-weit dürfen keine Kosmetika mehr vermarktet werden, die Inhaltsstoffe enthalten, die im Tierversuch ge<strong>test</strong>et wurden. Das ist ein Grund, sich zu freuen. Gesiegt hat der Tierschutz aber noch nicht, denn der Teufel steckt im&#8230;</p></excerpt>
</entry>
<entry id="110" section="products-categories">
    <excerpt><p>Zahnpflege Die SANTE Dental med Zahncremes pflegen und schützen die Zähne und Zahnfleisch zugleich: mit einem klinisch ge<strong>test</strong>eten Wirkstoffkomplex aus Salbei, Bio-Grüntee- Extrakt und Xylitol. Die natürlichen Putzkörper aus echter Kreide&#8230;</p></excerpt>
</entry>

我希望用HTML显示它。
目前我的HTML显示没有任何来自我的XML的HTML。

我用过两个

<xsl:value-of select="excerpt" disable-output-escaping="yes" />

<xsl:value-of select="excerpt" />

帮助! :(

2 个答案:

答案 0 :(得分:6)

尝试

<xsl:copy-of select="excerpt/node()"/>

xsl:value-of指令复制文本内容,删除所有元素标记。你无法使用disable-output-escaping来恢复它,这会做一些完全不同的事情。

答案 1 :(得分:0)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="/">
      <xsl:apply-templates select="root/entry/excerpt/*"/>
    </xsl:template>

</xsl:stylesheet>