Чтение из CSV-файла и разделение XML-файла на несколько XML-файлов с помощью java
У меня есть некоторые данные, которые я получаю из файла excel (CSV). Для каждой строки в файле excel я хочу создать другой xml-файл.
Функция, которую я написал, принимает в строку заголовков список массивов из CSV-файла и имя файла. Я думаю, что в моем цикле for, который проходит через строки из CSV. Мне нужно создать оператор, который может создавать несколько xml-файлов, а затем мне нужно изменить эту цепочку в моем основном методе. Мне нужно некоторое руководство о том, как создать это заявление
Мой основной способ и способ wrtietoXml наклеиваются ниже, пожалуйста, предложить некоторые рекомендации
public class CsvToXml { public static void main (String Args[]){ //This is hard coded, in a future version I would consider stripping this from a command-line arg. BufferedReader bufferedCsvFile = HelperMethods.getCsvFileBuffer("/Users/edgarjohnson/eclipse-workspace/CsvToXml/in.csv"); ArrayList<String> csvFileStrings = new ArrayList<String>(); HelperMethods.readCsvToStrings(csvFileStrings, bufferedCsvFile); String[] columnHeaders = HelperMethods.setHeaders(csvFileStrings); csvFileStrings.remove(0); // Remove headers from the csvStrings Arraylist HelperMethods.writeXmlFile(columnHeaders, csvFileStrings, "xmlOutput.xml"); } }
public static void writeXmlFile(String[] headers, ArrayList <String> stringsFromCsv, String fileName){ try { BufferedWriter buffWrite = new BufferedWriter(new FileWriter(fileName)); buffWrite.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); buffWrite.write("<patient>\r\n"); //String array that is the same size is that of the string from csv from line 66-69 //For each string in the csv file for(String s:stringsFromCsv){ buffWrite.write("\t<person>\r\n"); //Split the line into an array of strings String fields[] = s.split(","); //For each item in that array of strings for(int i=0; i<fields.length; i++){ //Define a String and keep on adding to that string using field element array, String should be outside for loopLol //Write the corresponding header to the file, as well as the value from the array 'fields' buffWrite.write("\t\t<" + headers[i] +">"+ fields[i] + "</" + headers[i] +">\n"); } buffWrite.write("\t</person>\n"); } buffWrite.write("</people>"); buffWrite.close(); } catch (IOException ioe){ System.err.println("Error while writing to xml file in writeXmlFile: "); ioe.printStackTrace(); } }
Что я уже пробовал:
Я попытался создать список массивов и сохранить xml-теги в массиве. Затем выполняется итерация по массиву и на основе имен тегов разделяется на несколько файлов. Но я не знаю, как бы я разделил код на несколько файлов.