我想在xslt中实现回车。 问题是我有一个varible: 步骤1 =值1 breaktag步骤2 =值2作为一个字符串,并希望出现如何实现XSLT中的回车
步骤1 =值1
步骤2 =值2
在HTML形式,但我得到关于执行在XSL换行/回车的page.Any好方式BR标签将不胜感激
我想在xslt中实现回车。 问题是我有一个varible: 步骤1 =值1 breaktag步骤2 =值2作为一个字符串,并希望出现如何实现XSLT中的回车
步骤1 =值1
步骤2 =值2
在HTML形式,但我得到关于执行在XSL换行/回车的page.Any好方式BR标签将不胜感激
我分开了v通过Environment.NewLine提供的线索,然后在html中使用预标签来模拟我正在寻找的效果
使用一个XSL简单回车:文本元素
<xsl:text>
</xsl:text>
这是非常讨厌,当你有缩进你所有的XML很好,然后你必须把这个... – 2009-06-19 09:25:31
该字符串是在数据库举行,我试图加入
我相信你可以使用xsl:此文标签,如
<xsl:text>
</xsl:text>
机会是,通过将结束标记在自己的行,换行符是文字文本的一部分并如此输出。
字符串被保存在数据库中,我尝试添加
作为替代
<xsl:text>
</xsl:text>
,你可以在使用的情况下
<xsl:text> </xsl:text> <!-- newline character -->
或
<xsl:text> </xsl:text> <!-- carriage return character -->
你不想弄乱你的缩进
在您希望回车的行尾尝试此操作。它为我工作。
<xsl:text><![CDATA[<br />]]></xsl:text>
下面是一个使用递归模板,查找
从数据库字符串中,然后才输出子的方法。 如果在剩余的
之后有一个子字符串,那么模板将自行调用,直到没有任何东西剩下。 如果
不存在,则仅输出文本。
这里是模板调用(只是你的数据库字段替换@ActivityExtDescription):
<xsl:call-template name="MultilineTextOutput">
<xsl:with-param name="text" select="@ActivityExtDescription" />
</xsl:call-template>
这里是模板本身的代码:
<xsl:template name="MultilineTextOutput">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text, ' ')">
<xsl:variable name="text-before-first-break">
<xsl:value-of select="substring-before($text, ' ')" />
</xsl:variable>
<xsl:variable name="text-after-first-break">
<xsl:value-of select="substring-after($text, ' ')" />
</xsl:variable>
<xsl:if test="not($text-before-first-break = '')">
<xsl:value-of select="$text-before-first-break" /><br />
</xsl:if>
<xsl:if test="not($text-after-first-break = '')">
<xsl:call-template name="MultilineTextOutput">
<xsl:with-param name="text" select="$text-after-first-break" />
</xsl:call-template>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" /><br />
</xsl:otherwise>
</xsl:choose>
作品像魅力!
这是我发现的唯一答案,用于将从数据库检索的字段格式化为xml。 – swilliams 2015-08-07 16:26:57
这适用于我,作为回车+生活饲料。
<xsl:text>
</xsl:text>
“&#10;”字符串不起作用。
我正在寻找一个很好的解决方案,因为许多人更喜欢,而不是直接在表达式中嵌入转义序列,或者在变量内部有奇怪的换行符。我发现两者的混合动力这个方法的实际工作,通过嵌入这样的变量中一个文本节点:
<xsl:variable name="newline"><xsl:text> </xsl:text></xsl:variable>
<xsl:value select="concat(some_element, $newline)" />
另一个不错的这一面,影响是,你可以在任何你想要的换行符传递,无论是刚LF,CR或CRLF。
--Daniel
我发现的最干净的方法是在样式表换行符,标签,和其他常见的文本结构的顶部插入!ENTITY
声明。当你不得不在输出中插入一些格式化元素时,这使得变换表看起来更干净。
例如:
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "<xsl:text>
</xsl:text>">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="step">
&nl;&nl;
<xsl:apply-templates />
</xsl:template>
...
这仅仅是为我工作的解决方案。除了我正在更换 &#10;与\ r \ n
看到这个非常相似的问题:http://stackoverflow.com/questions/723226/producing-a-new-line-in-xslt – Coder 2015-11-30 18:43:49