首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ofx4j解析格式错误的xml (ofx)?

如何用ofx4j解析格式错误的xml (ofx)?
EN

Stack Overflow用户
提问于 2010-02-08 20:47:38
回答 2查看 4.6K关注 0票数 2

我正在拼命地尝试使用下面的库:ofx4j。但是,与解析ofx文件相关的文档有点少。它说:如果你有一个文件或其他流资源,你可以使用net.sf.ofx4j.io.OFXReader的一个实例来读取它

好吧,但是我该怎么做呢?

它还声明了以下内容:如果希望将OFX直接解组为Java对象,请使用net.sf.ofx4j.io.AggregateUnmarshaller。

好吧,但这对我来说有点复杂。我是不是明显漏掉了什么?当我尝试使用反编组程序时,它会要求我实现一个接口。

有人能给我指出一个在线资源来解释我遗漏的部分吗?或者是最好的,您从前面关于ofxreader和unmarshaller的语句中理解了什么?

请不要责怪我,我正在用playframework学习java,如果能解析那些ofx文件,我会非常感激。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-09 01:13:43

我没有看到简单的老教程,但在test目录中有演示OFXReaderAggregateUnmarshaller的示例代码。

短语“net.sf.ofx4j.io.OFXReader的实例”表示已知的实现类之一,例如NanoXMLOFXReader,它是tested here。对AggregateUnmarshaller的测试是here

APImail归档也是很好的资源。看起来有很多institutions参与其中。

票数 5
EN

Stack Overflow用户

发布于 2010-11-09 06:18:26

对于那些像我一样偶然发现这一点的人,当我无法从AggregateUnmarshaller获得预期的结果时……下面是一个例子。

代码语言:javascript
复制
//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();
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2221608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档