동일한 XML 요소로 다른 ID를 사용하여 jaxb 마샬링을 루프하기 만하면 아래 코드와 달리 은 각 ID에 대한 새 XML 파일을 구문 분석하고 이전 하나를 쓰십시오..루프 a jaxb marshall
data [] []는 ID 목록을 나타내는 data [i] [0]에서 읽습니다.이 ID를 고객 ID로 설정하고 싶습니다. 위의 코드에서
는 Customer customer = new Customer();
File file = new File("C:/data.xml");
for (int i = 0; i < data.length; i++) {
customer.setId(data[i][0]);
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(customer, file);
jaxbMarshaller.marshal(customer, System.out);
}
출력 : 나는 하나 개의 XML 파일의 모든 ID 출력을 원하는
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="1"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="2"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="3"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="4"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="5"/>
, 모든 팁?
나는 내 문제를 이해하지 못했다. 예를 들어 나는 10 개의 id를 갖고 있고 루프 안에 마샬링한다. 매번 새로운 id가 생길 때마다, 이전 id를 덮어 쓴다. 그래서 마지막으로 내 xml 파일은 마지막 id 만 보여준다. 그래서 새로운 xml 파일이 생성 될 때마다, 콘솔은 파일의 내용을 보여줍니다. 왜 그렇게 많은 헤더가 있는지입니다. 하나의 단일 XML 파일에 모든 id 출력을 표시하므로 헤더가 콘솔에도 한 번 표시됩니다. – nihulus
@nihulus - 내 대답을 업데이트했습니다. 그것이 당신이 찾고있는 것이라면 저에게 알려주십시오. 덕분에 –
! 이상을 얻었다! – nihulus