【发布时间】:2020-04-19 20:34:30
【问题描述】:
我的 csv 文件是一个逗号分隔的文件。作为我要求的一部分,我需要将变量中包含的 XML 写入每行的最后一个单元格。此 XML 包含 commas('),当通过 CSVWriter 写入时,写入不正确。每个逗号都被视为分隔符,并将 XML 拆分为不同的单元格。
我的部分xml作为示例
<tns:Nature>Residential</tns:Nature>
<tns:Type>Duplex</tns:Type>
<tns:OccupancyPurpose>Owner Occupied Primary Residence</tns:OccupancyPurpose>
<tns:Valuation>
<tns:Sequence>1</tns:Sequence>
<tns:ValuationAmount>700000</tns:ValuationAmount>
<tns:ValuationDate>2014-08-13</tns:ValuationDate>
<tns:ValuerCompany>C J A **Replace_Comma** Lee **Replace_Comma** Property</tns:ValuerCompany>
<tns:ValuationType>Electronic Assessment</tns:ValuationType>
</tns:Valuation>
我的代码如下。
strLine = strLine + strXMLContent;
File file = new File(strFilePath);
FileWriter outputfile = null;
try
{
outputfile = new FileWriter(file,true);
CSVWriter writer = new CSVWriter(outputfile,',', CSVWriter.NO_QUOTE_CHARACTER,CSVWriter.DEFAULT_ESCAPE_CHARACTER,System.getProperty("line.separator"));;
String arr[] = strLine.split(",",-1);
for(int i = 0; i< arr.length; i++)
{
arr[i] = arr[i].replace("Replace_Comma", ","); //Replaces filler as a comma before being placed in csv
}
writer.writeNext(arr);
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
翻译为逗号时的填充符被视为分隔符,以下文本写入下一个单元格。
我尝试了很多东西,但都无济于事。请帮忙。
【问题讨论】:
-
您是否尝试将每个数据括在 ' 或 " 之间?(CSVWriter 构造函数给了我提示它应该是可能的 - CSVWriter.NO_QUOTE_CHARACTER)
-
我试过 CSVWriter.DEFAULT_QUOTE_CHARACTER 但它替换了一些其他引号字符而不是添加到每个字段
-
根据javadoc该参数应该指示Writer用它的“quoteChar”引用所有数据,你是什么意思它替换其他引号?