Java 객체를 XML에 작성하기위한이 코드가 있습니다.
public void convToXML(SampleClass sample,File file){
try {
JAXBContext jaxbContext = JAXBContext.newInstance(SampleClass .class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(trans, file);
jaxbMarshaller.marshal(trans, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
또한 루프에서 객체를 생성하는 시스템이 있지만이 방법은 XML 파일의 최신 객체 만 인쇄합니다. XML 루트 요소를 순차적으로 인쇄하고 매번 새 요소를 작성하지 않도록하려면 어떻게해야합니까?
루프 내부의 객체에 속성을 추가 한 후이 메서드를 계산합니다.
while(condition){
SampleClass sample = new SampleClass();
sample.setName("Sample");
sample.setId("432");
convToXML(sample)
}
My System.out
는 파일이 최신 만 표시하는 동안 올바른 수의 XML 객체를 표시합니다. 왜 이런거야? 마샬 호출이 함께 있습니다. . . .
루프를 시작하기 전에 파일이 존재하지 않는지 확인하십시오.
마샬 러의 경우 FileOutputStream
추가를 활성화 하여 제공 하십시오.
다음은 문제에 대한 작업 코드입니다.
File file = ...;
public void convToXML(SampleClass sample, File file){
try{
JAXBContext jaxbContext = JAXBContext.newInstance(SampleClass.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(trans, new FileOutputStream(file, true));
jaxbMarshaller.marshal(trans, System.out);
}catch(JAXBException e){
e.printStackTrace();
}
}
file.delete();
while(condition){
SampleClass sample = new SampleClass();
sample.setName("Sample");
sample.setId("432");
convToXML(sample, file)
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다