这个样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:preserve-space elements="*"/>
<xsl:template match="Parent">
<div>
<xsl:apply-templates mode="preserve"/>
</div>
</xsl:template>
<xsl:template match="text()" mode="preserve" name="split">
<xsl:param name="pString" select="."/>
<xsl:choose>
<xsl:when test="contains($pString,'
')">
<xsl:value-of select="substring-before($pString,'
')"/>
<br/>
<xsl:call-template name="split">
<xsl:with-param name="pString"
select="substring-after($pString,'
')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$pString"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="Child" mode="preserve">
<b>
<xsl:apply-templates mode="preserve"/>
</b>
</xsl:template>
</xsl:stylesheet>
输出:
<div> Running text with marked up entities like<br/> <b>Entity1</b><br/> and, text in the middle too, and<br/> <b> Entity2 </b><br/></div>
呈现为:
运行带有标记实体的文本,例如
Entity1和中间的文本,以及
Entity2
编辑:更好的例子只保留空白文本节点。