Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 如何在使用XSL-FO生成的PDF中插入换行符_Xslt_Xsl Fo - Fatal编程技术网

Xslt 如何在使用XSL-FO生成的PDF中插入换行符

Xslt 如何在使用XSL-FO生成的PDF中插入换行符,xslt,xsl-fo,Xslt,Xsl Fo,我正在使用XSL-FO和XML生成PDF。在文本框中,用户可以输入“1”之类的数据,然后按enter键,然后按“2”,然后按enter键,“3”等。但在XML和PDF中,输出是“1234567”。如何保留换行符?我已经尝试了空白区域折叠,换行处理和空白区域处理,但没有效果 我的XSL看起来像: <xsl:template match="AddCmt"> <fo:block keep-together="always"> Additional Comments

我正在使用XSL-FO和XML生成PDF。在文本框中,用户可以输入“1”之类的数据,然后按enter键,然后按“2”,然后按enter键,“3”等。但在XML和PDF中,输出是“1234567”。如何保留换行符?我已经尝试了
空白区域折叠
换行处理
空白区域处理
,但没有效果

我的XSL看起来像:

<xsl:template match="AddCmt">
    <fo:block keep-together="always"> Additional Comments 
        <fo:block-container border-style="solid" height="20mm" width="170mm" space-after="5mm"> 
            <fo:block> 
                <xsl:attribute name="id"> 
                    <xsl:value-of select="../CMT_ID"/> 
                </xsl:attribute> 
                <xsl:value-of select="../ANS_CMT"/> 
            </fo:block> 
        </fo:block-container> 
    </fo:block> 
</xsl:template> 
这是我得到的XML:

<?xml version="1.0" encoding="UTF-8" ?> 
<?xml-stylesheet type='text/xsl' href='e:\tmm-09.3\src\pmod\WorkOrder.xsl'?>
    <Root>
        <WorkOrders>
            <Detail>Id="ANS_436‌​_FLD_1" Label="qq">qq</Detail>
            <Ans Checked="0" Id="ANS_436_FLD_2" Label="ww">ww</Ans>
            <ID>ANS_436_FLD</ID>
            <ANS_FLD>0|0</ANS_FLD>
            <CMT_ID>ANS_436_CMT‌​</CMT_ID>
            <ANS_CMT>hello medhavi saraswat</ANS_CMT>
            <Warning>
                <Line>warning 11</Line>
                <Line>22</Line>
                <Line>33</Line>
                <Line>44</Line>
                <Line></Line>
                <Line>66</Lin‌​e>
                <Line>77</Line>
                <Line></Line>
            </Warning>

Id=“ANS_436‌​_FLD_1“Label=“qq”>qq
栈单
ANS_436_FLD
0|0
ANS_436_CMT‌​
你好,梅德哈维·萨拉斯瓦特
警告11
22
33
44
66
77

它应该使用以下xml(您应该添加所有属性):


补充意见
但是正如我在评论中提到的,如果您的XML已经没有换行符,那么您的PDF就不可能有换行符。您在问题中提到,XML中没有换行符,因此PDF中没有换行符


尝试检查XML中为什么没有换行符。如果您可以提供更多信息(一段XML,用于构建XML的代码,…),请编辑您的答案并添加信息。

您能告诉我们您使用的是什么FO处理器,以及您现在使用的xsl是什么样子吗?它应该适用于您提到的那些属性,而且您提到它在XML中已经是“123456”(不带换行符)。当然,所有这些属性都不会起任何作用。如何检索用户输入的文本(哪种语言、应用程序等)提供了一些代码来澄清。XSL看起来像:附加注释您好Peter,您是对的,我的XML没有换行符,因此pdf不应该有换行符。但是,当相同的XMl没有换行符时,当用于在基于html的页面中显示时,为什么会正确显示换行符,而在pdf中显示时,却没有换行符?我发现的另一件事是:右键单击viewsource-XMl包含换行符,但是,当同一个xml在IE中双击并打开时,它不会包含任何标记,也不会有换行符。请不要在IE中查看xml,因为它不会显示确切的xml源。使用记事本++之类的编辑器。它是有实际的空行,还是有像 ;这样的特殊字符?请编辑您的问题并添加XML(或其相关部分)。请不要将您的XML作为注释输入(它不可读)。您可能想了解StackOverflow的工作原理。这不是一个传统的论坛。您可以编辑您的问题并添加内容(使用标记,这是您在评论中无法做到的)。在你的问题下面(但在评论上面)是一个“编辑”链接。看看这个:
<?xml version="1.0" encoding="UTF-8" ?> 
<?xml-stylesheet type='text/xsl' href='e:\tmm-09.3\src\pmod\WorkOrder.xsl'?>
    <Root>
        <WorkOrders>
            <Detail>Id="ANS_436‌​_FLD_1" Label="qq">qq</Detail>
            <Ans Checked="0" Id="ANS_436_FLD_2" Label="ww">ww</Ans>
            <ID>ANS_436_FLD</ID>
            <ANS_FLD>0|0</ANS_FLD>
            <CMT_ID>ANS_436_CMT‌​</CMT_ID>
            <ANS_CMT>hello medhavi saraswat</ANS_CMT>
            <Warning>
                <Line>warning 11</Line>
                <Line>22</Line>
                <Line>33</Line>
                <Line>44</Line>
                <Line></Line>
                <Line>66</Lin‌​e>
                <Line>77</Line>
                <Line></Line>
            </Warning>
<xsl:template match="AddCmt">
    <fo:block keep-together="always"> Additional Comments 
        <fo:block-container border-style="solid" height="20mm" width="170mm" space-after="5mm"> 
            <fo:block wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve"> 
                <xsl:attribute name="id"> 
                    <xsl:value-of select="../CMT_ID"/> 
                </xsl:attribute> 
                <xsl:value-of select="../ANS_CMT"/> 
            </fo:block> 
        </fo:block-container> 
    </fo:block> 
</xsl:template>