Question

Je suis désespérement essaie d'utiliser la bibliothèque suivante: ofx4j . Mais la documentation relative à l'analyse d'un fichier OFX est un lite peu. Il dit: Si vous avez un fichier ou une autre ressource de flux, vous pouvez le lire en utilisant une instance de net.sf.ofx4j.io.OFXReader

Ok, mais comment dois-je faire?

Il indique également les éléments suivants:. Si vous voulez désorganiser le OFX directement à un objet Java, utilisez le net.sf.ofx4j.io.AggregateUnmarshaller

Très bien, mais c'est un peu compliqué pour moi. Y at-il quelque chose d'évident que je manqué? Lorsque je tente d'utiliser le unmarshaller, il me demande de mettre en œuvre une interface.

Quelqu'un pourrait-il me pointer vers une ressource en ligne expliquant les bits que je suis absent? Ou le meilleur, qu'entendez-vous des déclarations antérieures relatives au ofxreader et unmarshaller?

S'il vous plaît, ne me bash pas, je suis d'apprentissage java avec le et je voudrais play framework vraiment apprécié de pouvoir analyser ces fichiers OFX.

Merci d'avance.

Était-ce utile?

La solution

Je ne vois pas un tutoriel bon vieux, mais il y a un exemple de code dans la section Test répertoire qui illustre OFXReader et AggregateUnmarshaller.

L'expression "une instance de net.sf.ofx4j.io.OFXReader" signifie l'une des classes d'exécution connues », comme NanoXMLOFXReader , qui est testé ici . un test AggregateUnmarshaller est ici .

Le et les archives de courrier sont de bonnes ressources, aussi. Il ressemble à beaucoup d'institutions participer.

Autres conseils

Pour ceux qui trébuchent sur ce que je faisais quand je ne pouvais pas obtenir les résultats attendus de la AggregateUnmarshaller ... Voici un exemple.

//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();
  }
}
scroll top