我正在拼命地尝试使用下面的库:ofx4j。但是,与解析ofx文件相关的文档有点少。它说:如果你有一个文件或其他流资源,你可以使用net.sf.ofx4j.io.OFXReader的一个实例来读取它
好吧,但是我该怎么做呢?
它还声明了以下内容:如果希望将OFX直接解组为Java对象,请使用net.sf.ofx4j.io.AggregateUnmarshaller。
好吧,但这对我来说有点复杂。我是不是明显漏掉了什么?当我尝试使用反编组程序时,它会要求我实现一个接口。
有人能给我指出一个在线资源来解释我遗漏的部分吗?或者是最好的,您从前面关于ofxreader和unmarshaller的语句中理解了什么?
请不要责怪我,我正在用playframework学习java,如果能解析那些ofx文件,我会非常感激。
提前谢谢。
发布于 2010-02-09 01:13:43
我没有看到简单的老教程,但在test目录中有演示OFXReader和AggregateUnmarshaller的示例代码。
短语“net.sf.ofx4j.io.OFXReader的实例”表示已知的实现类之一,例如NanoXMLOFXReader,它是tested here。对AggregateUnmarshaller的测试是here。
API和mail归档也是很好的资源。看起来有很多institutions参与其中。
发布于 2010-11-09 06:18:26
对于那些像我一样偶然发现这一点的人,当我无法从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();
}
}https://stackoverflow.com/questions/2221608
复制相似问题