Frage

Ich versuche desperatly die folgende Bibliothek zu verwenden: ofx4j . Aber die Dokumentation bezüglich einer ofx Datei zu parsen ist ein bisschen lite. Dort heißt es: Wenn Sie eine Datei oder einen anderen Stream-Ressource haben, können Sie es mithilfe einer Instanz von net.sf.ofx4j.io.OFXReader lesen

Ok, aber wie soll ich tun?

Es gibt auch an die folgenden:., Wenn Sie die OFX direkt an ein Java-Objekt entpacken, verwenden Sie die net.sf.ofx4j.io.AggregateUnmarshaller

Gut, aber das ist ein bisschen für mich kompliziert. Gibt es etwas offensichtlich, dass ich verpasst? Wenn ich versuche, die Unmarshaller zu verwenden, es fragt mich, eine Schnittstelle zu implementieren.

Könnte mir jemand auf eine Online-Ressource zeigen die Bits zu erklären, dass ich fehle? Oder das Beste, was verstehen Sie von den bisherigen Aussagen in Bezug auf die ofxreader und den Unmarshaller?

Bitte, bash mich nicht, ich lerne Java mit dem playframework und ich würde wirklich zu schätzen, der Lage sein, diese ofx Dateien zu analysieren.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich sehe nicht, eine gute alte Tutorial, aber es gibt Beispielcode in dem test Verzeichnis, das OFXReader und AggregateUnmarshaller zeigt.

Der Ausdruck "eine Instanz von net.sf.ofx4j.io.OFXReader " bedeutet, einer der bekannten implementierenden Klassen“, wie NanoXMLOFXReader , das ist getestet hier . ein Test auf AggregateUnmarshaller ist hier .

Die API und Mail Archive sind gute Ressourcen, auch. Es sieht aus wie eine Menge Institutionen teilnehmen.

Andere Tipps

Für diejenigen, die auf diese stolpern wie ich, wenn ich nicht die erwarteten Ergebnisse aus dem AggregateUnmarshaller bekommen könnte ... Hier ist ein Beispiel.

//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();
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top