Transformer Java XML CDATA重复行
我在JDK 7中使用transformer编写一些XML,我在CDATA中有一个freemarker模板,如下所示: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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fileExport append="false" automaticExport="false" automaticExportWithErrors="true" exportDir="C:\Users\bänn\Desktop" exportFileName="<date> <time> <barcode>" 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”),所以我会做什么:
\n
(编辑器设置)System.setProperty(“file.encoding”,“\n”)代码>
大概1。足够了,如2。很难看。我看到了一些详细的解决方法(搜索“xalan newline”),所以我要做的是:
\n
(编辑器设置)System.setProperty(“file.encoding”,“\n”)代码>