سؤال

أحاول حقا استخدام المكتبة التالية: ofx4j.. وبعد لكن الوثائق المتعلقة بتحليل ملف OFX لايت قليلا. تقول: إذا كان لديك ملف أو مورد دفق آخر، يمكنك قراءته باستخدام مثيل NET.SF.OFX4J.IO.OfXReader

حسنا ولكن كيف أفعل؟

كما ينص على ما يلي: إذا كنت ترغب في إلغاء الاشتراك في OFX مباشرة إلى كائن Java، استخدم NET.SF.OFX4J.IO.AggregateUnmarShaller.

غرامة، ولكن هذا معقد قليلا بالنسبة لي. هل هناك شيء واضح أن فاتني؟ عندما أحاول استخدام UnmarShaller، يطلب مني تنفيذ واجهة.

هل يمكن لشخص ما أن يشير لي إلى مورد عبر الإنترنت يشرح البتات التي أفتقدها؟ أو الأفضل، ما الذي تفهمه من العبارات السابقة بالنسبة إلى ofxreader و unmarshaller؟

من فضلك، لا تصبح بي، أنا أتعلم جافا مع عمليات تشغيل Playframe وسأكون ممتنا حقا أن أكون قادرا على تحليل ملفات OFX.

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

لا أرى برنامج تعليمي قديم عادي، ولكن هناك نموذج التعليمات البرمجية في اختبار دليل يوضح OFXReader و AggregateUnmarshaller.

عبارة "مثيل net.sf.ofx4j.io.OFXReader"تعني واحدة من الطبقات المنفذة المعروفة"، مثل NanoXMLOFXReader, ، الذي اختبار هنا. وبعد اختبار ل AggregateUnmarshaller هو هنا.

ال api. و بريد الأرشيفات هي موارد جيدة أيضا. يبدو وكأنه الكثير من المؤسسات مشاركة.

نصائح أخرى

بالنسبة لأولئك الذين تتعثرون على ذلك، فعلت عندما لم أتمكن من الحصول على النتائج المتوقعة من AggrograteUnmarshaller ... هنا مثال.

//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