Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
Transformer Java XML CDATA重复行_Java_Xml_Transformer - Fatal编程技术网

Transformer Java XML CDATA重复行

Transformer Java XML CDATA重复行,java,xml,transformer,Java,Xml,Transformer,我在JDK 7中使用transformer编写一些XML,我在CDATA中有一个freemarker模板,如下所示: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <fileExport append="false" automaticExport="false" automaticExportWithErrors="true" exportDir="C:\Users\bänn\Desktop" exportFi

我在JDK 7中使用transformer编写一些XML,我在CDATA中有一个freemarker模板,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fileExport append="false" automaticExport="false" automaticExportWithErrors="true" exportDir="C:\Users\bänn\Desktop" exportFileName="&lt;date&gt; &lt;time&gt; &lt;barcode&gt;" exportType="Excel" splitFiles="false">
  <exportTemplate><![CDATA[Date,RackBarcode,Row,Col,tubeBarcode,OrientationBarcode
<#list racks as rack>
<#list rack.containers as container>
${scandate?datetime},${rack.barcode},${container.textRow},${container.col + 1},${container.barcode},${rack.orientationBarcode}
</#list>
</#list>]]></exportTemplate>
  <scanTimeQuestionsTemplate><![CDATA[<#if scanTimeQuestionsEnabled>
Scan Time Questions

<#list scanTimeQuestions as question>
${question.shortName} : ${question.answer}
</#list>

</#if>]]></scanTimeQuestionsTemplate>
  <excelExportTemplate writeHeader="true">
    <excelExportColumn columnDataFormatting="d/M/yyyy HH:mm" columnDataFromString="DATETIME" columnHeader="Scan Time"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="RACK_BARCODE" columnHeader="Rack Barcode"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="ORIENTATION_BARCODE" columnHeader="Orientation Barcode"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_ROW_TEXT" columnHeader="Tube Row"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_COLUMN" columnHeader="Tube Column"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_BARCODE" columnHeader="Tube Barcode"/>
    <excelExportColumn columnDataFormatting="d/M/yyy HH:mm:ss" columnDataFromString="DATETIME" columnHeader="Scan Datetime"/>
  </excelExportTemplate>
</fileExport>


</#if>

]]></scanTimeQuestionsTemplate>
  <excelExportTemplate writeHeader="false">
    <excelExportColumn columnDataFormatting="d/M/yyyy HH:mm" columnDataFromString="DATETIME" columnHeader="Scan Time"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="RACK_BARCODE" columnHeader="Rack Barcode"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="ORIENTATION_BARCODE" columnHeader="Orientation Barcode"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_ROW_TEXT" columnHeader="Tube Row"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_COLUMN" columnHeader="Tube Column"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_BARCODE" columnHeader="Tube Barcode"/>
  </excelExportTemplate>
</fileExport>

${scandate?datetime}、${rack.barcode}、${container.textRow}、${container.col+1}、${container.barcode}、${rack.orientationBarcode}
]]>
浏览时间问题
${question.shortName}:${question.answer}
]]>
]]>
但是,当我在windows计算机上写下此内容时,transformer正在向输出的CDATA中添加一个额外的\r,因此我有:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fileExport append="false" automaticExport="false" automaticExportWithErrors="false" exportDir="C:\Users\benn\Desktop" exportFileName="" exportType="text" splitFiles="false">
  <exportTemplate><![CDATA[Date,RackBarcode,Row,Col,tubeBarcode,OrientationBarcode

<#list racks as rack>

<#list rack.containers as container>

${scandate?datetime},${rack.barcode},${container.textRow},${container.col + 1},${container.barcode},${rack.orientationBarcode}

</#list>

</#list>

]]></exportTemplate>
  <scanTimeQuestionsTemplate><![CDATA[<#if scanTimeQuestionsEnabled>

Scan Time Questions



<#list scanTimeQuestions as question>

${question.shortName} : ${question.answer}

</#list>



</#if>

]]></scanTimeQuestionsTemplate>
  <excelExportTemplate writeHeader="false">
    <excelExportColumn columnDataFormatting="d/M/yyyy HH:mm" columnDataFromString="DATETIME" columnHeader="Scan Time"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="RACK_BARCODE" columnHeader="Rack Barcode"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="ORIENTATION_BARCODE" columnHeader="Orientation Barcode"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_ROW_TEXT" columnHeader="Tube Row"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_COLUMN" columnHeader="Tube Column"/>
    <excelExportColumn columnDataFormatting="" columnDataFromString="TUBE_BARCODE" columnHeader="Tube Barcode"/>
  </excelExportTemplate>
</fileExport>

${scandate?datetime}、${rack.barcode}、${container.textRow}、${container.col+1}、${container.barcode}、${rack.orientationBarcode}
]]>
浏览时间问题
${question.shortName}:${question.answer}
]]>

因此,基本上\r\n正在变得\r\r\n-我看到一些关于Xalan这样做的消息,但我使用JDK 7提供的任何东西作为后台引擎;有没有人看到过这一点,我是否可以设置一个属性来阻止transformer在我的CDATA中添加额外的换行符>

我看到了一些详细的解决方法(搜索“xalan newline”),所以我会做什么:

  • 确保源代码只有Unix行结尾
    \n
    (编辑器设置)
  • System.setProperty(“file.encoding”,“\n”)

  • 大概1。足够了,如2。很难看。

    我看到了一些详细的解决方法(搜索“xalan newline”),所以我要做的是:

  • 确保源代码只有Unix行结尾
    \n
    (编辑器设置)
  • System.setProperty(“file.encoding”,“\n”)
  • 大概1。足够了,如2。它很难看