XML 파일을 만들고 싶습니다. OrderDetails 하위 노드를 하나 만들면 디스크로 출력됩니다. 이제는 2를 만들려고합니다. 그것은 하나 batchheader 여러 주문 정보가있는 XML 파일. 그래서Java에서 multiplle 자식 노드를 사용하여 XML 파일 만들기
<?xml version="1.0" encoding="UTF-8"?>
<BatchOrders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BatchHeader>
<Provider>123456789</Provider>
<Contact>[email protected]</Contact>
</BatchHeader>
<OrderDetails>
<Number>0456789</Number>
<YourReference>tc1</YourReference>
<DeliveryDate>23-08-2012</DeliveryDate>
<RetailerID>AAA</RetailerID>
</OrderDetails>
<OrderDetails>
<Number>1234</Number>
<YourReference>tc2</YourReference>
<DeliveryDate>23-08-2013</DeliveryDate>
<RetailerID>BBB</RetailerID>
</OrderDetails>
</BatchOrders>
i를 propeties과 GET/setter를 가진 클래스라는 OrderDetails의가. 나는 또한 다음은 XML 헤더 등을 기록하는 클래스가 있습니다 주문 세부 정보 - 아래 내용을 참조하십시오.
OrderHeader header = new OrderHeader();
header.setProvider("123456789");
//rest of header setting done
OrderWriter writer = new OrderWriter(orderWriter);
writer.Initialise(header);
OrderDetails[] orderdetails = new OrderDetails[3];
for(int i = 0; i < orderdetails.length; i++)
{
orderdetails[i] = new OrderDetails();
orderdetails[i].setDirectoryNumber("0456789" + i);
//rest of sets done
writer.writeNext(orderdetails[i]);
}
writer.close();
마지막으로 아래에 있습니다. riter 클래스 - 하나의 주문 세부 사항 만 있으면 제대로 작동하고 올바른 XML 형식으로 파일을 인쇄합니다. 내가 여러 OrderDetails 자식 노드를 만드는 코드를 시도 할 때 - 정확한 순서로 XML 형식이 아닌 하나의 긴 텍스트 문자열에서 첫 주문 세부 정보를 제공합니다. 아무도 바보 같은 것을 볼 수 있습니까?
public void Initialise(OrderHeader header) throws Exception
{
Element batchOrders = new Element("BatchOrders");
document.setRootElement(batchOrders);
Element batchHeader = new Element("BatchHeader");
batchHeader.addContent(new Element("ServiceProvider").setText(header.getServiceProvider()));
//more header sets are done...
document.getRootElement().addContent(batchHeader);
}
public void close() throws Exception { writer.close(); }
public void writeNext(OrderDetails record) throws Exception
{
Element orderDetails = new Element("OrderDetails");
if(record.getNumber() != null)
{
orderDetails.addContent(new Element("Number").setText(record.getNumber()));
}
//More sets are done....
document.getRootElement().addContent(orderDetails);
outputter.getFormat().setOmitDeclaration(true);
outputter.getFormat().setOmitEncoding(true);
outputter.output(document,writer);
}
이 게시물에서보세요 : http://stackoverflow.com/questions/4142046/create-xml-file-using-java –