Pregunta

Estoy desesperadamente tratando de utilizar la biblioteca siguiente: ofx4j . Sin embargo, la documentación relativa a analizar un archivo de x es un poco Lite. Dice: Si usted tiene un archivo u otro recurso de secuencia, se puede leer usando una instancia de net.sf.ofx4j.io.OFXReader

bien, pero ¿cómo lo hago?

También se establece lo siguiente:. Si quieres deserializar la OFX directamente a un objeto Java, utilice el net.sf.ofx4j.io.AggregateUnmarshaller

Bella, pero eso es un poco complicado para mí. ¿Hay algo obvio que me perdí? Cuando intento utilizar el unmarshaller, se me pide que implementar una interfaz.

Podría alguien que me señale un recurso en línea que explica los bits que me falta? O el mejor, ¿qué se puede entender a partir de las declaraciones anteriores relativas a la ofxreader y la unmarshaller?

Por favor, no me golpear, estoy aprendiendo Java con la playframework y realmente apreciaría a ser capaz de analizar esos archivos ofx.

gracias de antemano.

¿Fue útil?

Solución

No veo un tutorial simple y llano, pero no hay código de ejemplo en el prueba directorio que ilustra OFXReader y AggregateUnmarshaller.

La frase "una instancia de net.sf.ofx4j.io.OFXReader " significa una de las clases de implementación conocidos", tales como NanoXMLOFXReader , que es probado aquí . una prueba para AggregateUnmarshaller es aquí .

El y archivos de correo son un buen recurso, también. Parece que una gran cantidad de instituciones participar.

Otros consejos

Para aquellos que tropiezan en este como lo hice cuando no podía obtener los resultados esperados de la AggregateUnmarshaller ... Aquí es un ejemplo.

//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();
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top