XSLT将新行转换为<;br/>;
我不能让它工作。我已经看过所有关于堆栈溢出的示例,并且理解xslt代码。但出于某种原因,它正在替换我的空格字符,而不是新行XSLT将新行转换为<;br/>;,xslt,xslt-1.0,Xslt,Xslt 1.0,我不能让它工作。我已经看过所有关于堆栈溢出的示例,并且理解xslt代码。但出于某种原因,它正在替换我的空格字符,而不是新行 <t>Line1 Is here Line2 Is another Line3 Is some more </t> 看到我的例子了吗 它似乎正在替换空格字符,而不是新的行字符。这是webkit中的一个已知问题,它会影响Safari和Chrome。详情如下: 不久前我自己也问了一个类似的问题:这是webkit中的一个已知问题,它会影响Saf
<t>Line1 Is here
Line2 Is another
Line3 Is some more
</t>
看到我的例子了吗
它似乎正在替换空格字符,而不是新的行字符。这是webkit中的一个已知问题,它会影响Safari和Chrome。详情如下:
不久前我自己也问了一个类似的问题:这是webkit中的一个已知问题,它会影响Safari和Chrome。详情如下: 不久前我自己也问了一个类似的问题:我无法重现这个问题。只需复制和粘贴提供的XML文档和XSLT转换,然后在XML文档上运行转换,我得到这个结果:Line1在这里
Line2是另一个
Line3是更多的
浏览器显示是这样的:Line1在这里
Line2是另一个
Line3是更多的
我在我的计算机上安装的所有11个XSLT处理器都得到了相同的结果:MSXML 3/4/6、.NET XSLT CompiledTransform和.NET XslTransform,AltovaXML(XML-SPY)、Saxon 6.5.4、Saxon 9.1.07、Saxon 9.1.07 for.NET、AltovaXML for XSLT 2。我无法重现这个问题。只需复制和粘贴提供的XML文档和XSLT转换,然后在XML文档上运行转换,我得到这个结果:Line1在这里
Line2是另一个
Line3是更多的
浏览器显示是这样的:Line1在这里
Line2是另一个
Line3是更多的
我在我的计算机上安装的所有11个XSLT处理器都得到了相同的结果:MSXML 3/4/6、.NET XSLT CompiledTransform和.NET XslTransform,AltovaXML(XML-SPY),Saxon 6.5.4,Saxon 9.1.07,Saxon 9.1.07用于.NET,AltovaXML用于XSLT 2。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="t">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="text()" name="insertBreaks">
<xsl:param name="pText" select="."/>
<xsl:choose>
<xsl:when test="not(contains($pText, '
'))">
<xsl:copy-of select="$pText"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before($pText, '
')"/>
<br />
<xsl:call-template name="insertBreaks">
<xsl:with-param name="pText" select=
"substring-after($pText, '
')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Line1
Is
here Line2
Is
another Line3
Is
some
more