2017-12-28 1 views
0

내 Pojo 개체를 사용하여 Unmarshall Jaxb를 사용하여 xml 파일 (Input.xml) .Jaxb Marshaller. 레코드 처리 결과를 나타내는 추가 태그와 함께 input.xml 파일의 동일한 데이터를 포함하는 output.xml 파일을 생성합니다.

Unmarshaller로 입력 파일 예제 읽기.

File file = new File(".\\src\\test\\files\\Input.xml"); 
    JAXBContext jaxbContext = JAXBContext.newInstance(MerchantPayments.class); 
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
    MerchantPayments MpObj = (MerchantPayments) jaxbUnmarshaller.unmarshal(file); 
    // Process MpObj.. 

내가 지금해야 할 일은의 Input.xml 파일의 동일한 데이터를 포함하는 Output.xml 파일을 생성하지만, 레코드가 성공적으로로드 된 경우 나타내는 <result>라는 새로운 태그를 추가하는 것입니다.

input.xml의 동일한 데이터를 포함하고 새 태그를 추가하는 Jaxb Marshal 기능을 사용하여 output.xml 파일을 생성하는 가장 좋은 방법은 무엇입니까?

새로운 태그를 추가하기 위해 output.xml 파일의 새로운 Pojo를 생성해야합니까? 아니면 Jaxb Marshaller를 사용하는 다른 방법이 있습니까? 나는 새 태그 <result>를 포함, 추가 태그 <result>

Input.xml

<?xml version='1.0' encoding='UTF-8'?> 
    <payments> 
     <payment> 
      <account>123</account> 
      <order>110000000001</order> 
      <amount>19.0</amount> 
     </payment> 
     <payment> 
      <account>1234</account> 
      <order>110000000002</order> 
      <amount>20.0</amount> 
     </payment> 
    </payments> 

Output.xml와 geneate하는 데 필요한 Input.xml 파일과 output.xml 파일 아래

:

<?xml version='1.0' encoding='UTF-8'?> 
    <payments> 
     <payment> 
      <account>123</account> 
      <order>110000000001</order> 
      <amount>19.0</amount> 
      **<result>Record loaded correctly</result>** 
     </payment> 
     <payment> 
      <account>1234</account> 
      <order>110000000002</order> 
      <amount>20.0</amount> 
      **<result>Record Failed</result>** 
     </payment> 
    </payments> 

미리 감사드립니다.

답변

0

Output.xml에 새 태그를 추가하려면 먼저 MerchantPayments 클래스에 다음과 같은 setter/getter 속성을 추가해야합니다. 비 정렬 화 후

@XmlElement(name = "result") 
private String result; 

, 당신은 에게 MpObj 당신이 을 설정해야를 얻을 수 있습니다 필드를 결과에 텍스트를 "기록 실패". 이제 MpObj를 마샬링하여 Output.xml에서 원하는 출력을 얻을 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 이런 식으로 xsd 파일은 새 요소 결과를 정의하기 위해 수정되어야하며 원본 xsd 파일을 수정할 수 없습니다. – Alex

관련 문제