我拼命尝试使用以下库: 的x4j. 。但是与解析 ofx 文件相关的文档有点精简。它说 :如果您有文件或其他流资源,则可以使用 net.sf.ofx4j.io.OFXReader 的实例读取它

好的,但是我该怎么办?

它还指出以下内容:如果您想将 OFX 直接解组为 Java 对象,请使用 net.sf.ofx4j.io.AggregateUnmarshaller。

好吧,但这对我来说有点复杂。有什么明显的事情我错过了吗?当我尝试使用解组器时,它要求我实现一个接口。

有人可以向我指出一个在线资源来解释我所缺少的部分吗?或者最好的是,您从前面有关 ofxreader 和 unmarshaller 的陈述中理解了什么?

请不要攻击我,我正在使用 playframework 学习 java,我真的很高兴能够解析这些 ofx 文件。

提前致谢。

有帮助吗?

解决方案

我没有看到简单的旧教程,但有示例代码 测试 说明的目录 OFXReaderAggregateUnmarshaller.

短语“一个实例 net.sf.ofx4j.io.OFXReader“表示已知的实现类之一”,例如 NanoXMLOFXReader, ,即 在这里测试过. 。测试 AggregateUnmarshaller这里.

应用程序编程接口邮件 档案也是很好的资源。看起来有很多 机构 参加。

其他提示

对于那些在这个蹒跚像我一样,当我无法从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