【转】几种用XSL显示XML中换行的方法

  •  首先将xml文件中的内容用CDATA显示,即:
<content>
<![CDATA[
这里有个回车<br />挖哈哈
]]>
</content>
然后在xsl中如下调用:
<xsl:value-of select="content" disable-output-escaping="yes" />即可

此法可以显示所有的html代码,实现也较为简单.

 

  •   如果是希望xsl显示一段含有   的文字,并将中间的换行显示出来,则可以考虑下面的方法(此方法不能转换html代码
使用xsl写的一个方法
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="br">
  <xsl:param name="string"/>
  <xsl:choose>
   <xsl:when test="contains($string,' ')">
    <xsl:value-of select="substring-before($string,' ')"/><br/>
    <xsl:call-template name="br">
     <xsl:with-param name="string" select="substring-after($string,' ')"/>
    </xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
    <xsl:value-of select="$string"/>
   </xsl:otherwise>
  </xsl:choose>
</xsl:template>
</xsl:stylesheet>
存为brfunc.xsl
然后在xsl文件头导入此文件(必须紧接<xsl:stylesheet...>之下)
<xsl:import href="brfunc.xsl" />
在文件中需要调用时,方法
<xsl:call-template name="br">
  <xsl:with-param name="string" select="content" />
</xsl:template>
此方法较为繁琐,如果只需要转换换行符的话可以考虑

  • 基本和上面的功能差不多,但比上面一种简单得多
    在xsl里面:
<pre>
  <xsl:value-of select="content" />
</pre>
posted @ 2012-11-16 20:23  KevinXiao  阅读(725)  评论(0编辑  收藏  举报