CitibankからOFXファイルをダウンロードしました。このファイルのDTDはhttp://www.ofx.net/DownloadPage/Files/ofx102spec.zip(OFXBANK.DTDファイル)と定義されています.OFXファイルはSGMLと表示されます。 PHP 5.4.13のDomDocumentで試していますが、いくつかの警告が表示され、ファイルは解析されません。私のコードは次のとおりです。PHPでOFX(バージョン1.0.2)ファイルを解析するには?
$file = "source/ACCT_013.OFX";
$dtd = "source/ofx102spec/OFXBANK.DTD";
$doc = new DomDocument();
$doc->loadHTMLFile($file);
$doc->schemaValidate($dtd);
$dom->validateOnParse = true;
OFXファイルの先頭として:
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<DTSERVER>20130331073401
<LANGUAGE>SPA
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>0
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<STMTRS>
<CURDEF>COP
<BANKACCTFROM> ...
私はPHPからの呼び出しをサーバ(CentOSに)で任意のプログラムをインストールして使用して開いています。
PD:このクラスhttp://www.phpclasses.org/package/5778-PHP-Parse-and-extract-financial-records-from-OFX-files.htmlは私にとっては機能しません。
ありがとうございます。それはhttp://www.bin-co.com/php/scripts/xml2array/ –
でPHP配列に変換されましたが、フォーマットはやや平らになっています。この変種を使用したいと思うかもしれません:http://stackoverflow.com/a/15729905/367456 - これは1行のコードです。 – hakre