>

다른 유형의 의료 데이터가있는 xml 파일이 있습니다. xml 파일을 태그 이름 또는 행별로 여러 파일로 분할하려고합니다. csv 파일에서이 xml 데이터를 가져옵니다. xml 파일 데이터는 다음과 같습니다.

Xml 파일 데이터

데이터를 가져 오는 ImVS 파일

한 번 분할 된 각 파일의 이름은 descriptor_pdx01.xml, descriptor_pdx02.xml, descriptor_pdx03.xml 등입니다.

Buff Write 또는 FileWriter를 사용하여 Java 로이 작업을 수행하려고합니다. 이것은 xml 파일에 쓰려고 작성한 코드입니다. 문제는 buffwrite 및 Filewriter를 사용하여 XML 파일을 Java의 여러 파일로 분할하는 방법을 찾는 중입니다.

이것은 CSV 파일의 내용입니다 :

TESTCLIENT_2017_09_30    pdx01   Carcinosarcoma      C34448   M     12
TESTCLIENT_2017_09_30    pdx02   Esophageal carcinoma C4025     
TESTCLIENT_2017_09_30    pdx03   Esophageal carcinoma   C4025       45
TESTCLIENT_2017_09_30    pdx04   Carcinosarcoma       C34448    F   
TESTCLIENT_2017_09_30    pdx05   Esophageal carcinoma    C4025  F   60
TESTCLIENT_2017_09_30    pdx06   Esophageal carcinoma    C4025  F   66
TESTCLIENT_2017_09_30    pdx07   Carcinosarcoma       C34448    M    70

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(",");

                String[] stringToWrite = fields;
                //Initiate a string variable and using the field array values form the xml and assign it to the string variable
                //DO a method call and Send the string and fileName (descriptor_field[1])
                //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();
        }

    }

이 작업을 수행하는 방법에 대한 지침을 제공 할 수 있다면 대단히 감사하겠습니다.

  • 답변 # 1

    일부 사람들이 귀하의 질문에 댓글을 달았으므로 코드에 많은 문제가 있습니다.

    경량 라이브러리를 사용하여 CSV 및 XML 파일을 POJO로 처리합니다.

    내 제안? BeanIO는 CSV 및 XML 파일을 읽고 쓰는 데 매우 유용한 라이브러리입니다.

    POJO를 작성하고 BeanIO의 @Record 를 사용하십시오  그리고 @Field  주석. BeanIO는 CSV/XML을 POJO로 올바로 구문 분석하므로 필요한 모든 것을 할 수 있습니다.

관련 자료

  • 이전 excel vba - 자동 모양 그리기를 활성화하는 버튼
  • 다음 jquery - 노드 스크레이퍼가있는 페이지에서 '제출'버튼을 클릭 한 다음 해당 페이지를 검색하는 방법