改变</BR>;在XSLT中使用换行符

改变</BR>;在XSLT中使用换行符,xslt,newline,xslt-2.0,Xslt,Newline,Xslt 2.0,我有以下XSLT: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" exclude-result-prefixes="date"> <xsl:output method="html" omit-xml-declaration="yes"/> <xsl:templa

我有以下XSLT:

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
exclude-result-prefixes="date">
<xsl:output method="html" omit-xml-declaration="yes"/>
  <xsl:template match="//Mail">
    <html>
      <body>
      <p>
        <xsl:value-of xml:space="preserve" select="body"/>
      </p>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

有人能帮我吗?

使用
apply template
而不是
body的
值,这样您就可以在输出中处理
BR

试试这个:

<xsl:template match="//Mail">
    <html>
        <body>
            <p>
                <xsl:apply-templates select="body"/>
            </p>
        </body>
    </html>
</xsl:template>

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

<xsl:template match="BR">
    <xsl:text>&#xa;</xsl:text>
</xsl:template>



请参见

上的转换,我不清楚您希望得到什么样的HTML输出。您可以在问题中包含预期的输出吗?是什么阻止您不在xslt中添加新行而不是从

开始?您的

标记是否实际位于输入XML中的
标记中?您确实需要编辑您的问题以显示您的输入。谢谢。@TimC我发送的信息实际上是:Ceci est un email automatique concernant un registration dans MyInami pour le groupment'{0}'avec numéro INAMI{1}:


le{4},{2}{3}一个修改后的votre groupment.

-
CreateGeneralDataUpdatedBody
正在创建输入?通过执行
innerText
您将其添加为文本,因此输入中不会有任何

标记,而是一个5个字符的字符串。您可以改为尝试
innerXml
,但是
CreateGeneralDataUpdatedBody
需要返回格式良好的XML(即具有单个根元素)。我尝试了您的解决方案,但仍然得到相同的结果。我没有收到新线,而BR仍在使用中displayed@BartSchelkens,请参阅上的转换。我尝试过它,但在我的代码上不起作用。不要得到那份工作newlines@BartSchelkens,你会把所有的输入放在这里还是
<xsl:template match="//Mail">
    <html>
        <body>
            <p>
                <xsl:apply-templates select="body"/>
            </p>
        </body>
    </html>
</xsl:template>

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

<xsl:template match="BR">
    <xsl:text>&#xa;</xsl:text>
</xsl:template>