OFX4J와 함께 오르플 링 된 XML (OFX)을 구문 분석하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2221608

  •  19-09-2019
  •  | 
  •  

문제

나는 절망적으로 다음 라이브러리를 사용하려고 노력하고 있습니다. ofx4j. 그러나 OFX 파일을 구문 분석하는 것과 관련된 문서는 약간의 라이트입니다. 말한다 : 파일 또는 기타 스트림 리소스가있는 경우 em 인스턴스를 사용하여 읽을 수 있습니다.

좋아하지만 어떻게해야하나요?

또한 OFX를 Java 객체에 직접 비교하려면 net.sf.ofx4j.io.aggregateUnmarshaller를 사용하십시오.

좋아,하지만 그것은 나에게 약간 복잡하다. 내가 놓친 것이 분명합니까? Unmarshaller를 사용하려고하면 인터페이스를 구현하도록 요청합니다.

누군가 내가 놓친 비트를 설명하는 온라인 리소스를 알려줄 수 있습니까? 또는 OfxReader 및 Unmarshaller에 대한 이전 진술에서 무엇을 이해합니까?

제발, 저를 강타하지 말고, 나는 playframework로 Java를 배우고 있으며, OFX 파일을 구문 분석 할 수있어서 정말 감사하겠습니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

평범한 오래된 튜토리얼이 보이지 않지만 샘플 코드가 있습니다. 테스트 설명하는 디렉토리 OFXReader 그리고 AggregateUnmarshaller.

"인스턴스 net.sf.ofx4j.io.OFXReader"알려진 구현 클래스 중 하나를 의미합니다." NanoXMLOFXReader, 그것은 여기에서 테스트되었습니다. 테스트 AggregateUnmarshaller ~이다 여기.

그만큼 API 그리고 우편 아카이브도 좋은 자원입니다. 많은 것 같습니다 기관 참가하다.

다른 팁

AggregateUnmarshaller로부터 예상 결과를 얻을 수 없었을 때처럼 이것에 걸려 넘어지는 사람들에게는 ... 여기에 예입니다.

//Using a multipart file, but using a regular file is similar.
public void parse(MultipartFile file) throws IOException {
  //Use ResponseEnvelope to start.
  AggregateUnmarshaller<ResponseEnvelope> unmarshaller = new AggregateUnmarshaller<ResponseEnvelope>(
    ResponseEnvelope.class);

  try {
    ResponseEnvelope envelope = unmarshaller.unmarshal(file.getInputStream());
    //Assume we are just interested in the credit card info.  Make sure to cast.
    CreditCardResponseMessageSet messageSet = (CreditCardResponseMessageSet) envelope
      .getMessageSet(MessageSetType.creditcard);

    List<CreditCardStatementResponseTransaction> responses = messageSet.getStatementResponses();
    for (CreditCardStatementResponseTransaction response : responses) {
      CreditCardStatementResponse message = response.getMessage();
      String currencyCode = message.getCurrencyCode();
      List<Transaction> transactions = message.getTransactionList().getTransactions();
      for (Transaction transaction : transactions) {
        System.out.println(transaction.getName() + " " + transaction.getAmount() + " "
          + currencyCode);
      }
    }
  }
  catch (OFXParseException e) {
    e.printStackTrace();
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top