我需要使用 Open Financial Exchange (OFX) 协议检索财务数据。为此,我使用 JAXB 将对象树编组为指定数据请求参数的 XML 字符串,然后将此 XML 字符串发送到银行的服务器。然后银行以包含所请求数据的 XML 字符串进行响应,我使用 JAXB 将其解组到对象树中。对于我尝试的前几家银行,我收到了符合已发布 OFX 模式的格式良好的 XML 格式的数据,并且我能够使用 JAXB 轻松解组它。
然而,当我向花旗集团索取数据时,他们给我发回了以下信息:
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>20150513180826.000
<LANGUAGE>ENG
<FI>
<ORG>Citigroup
<FID>24909
</FI>
</SONRS>
</SIGNONMSGSRSV1>
</OFX>
请注意,这是实际输出的缩写形式,但足以说明问题。问题是我无法弄清楚如何使用 JAXB 来解组这些内容。它不是格式良好的 XML,因为 (1) 它没有 XML 标头,(2) 自定义处理指令(上面的前九行)未包含在 <?...?> 标记中,以及 (3 ) 最重要的是,simpleTypes 只有开始标签,没有结束标签。
我已经到处寻找答案,并在几个地方发现了类似的 XML-ish 格式,其中一个地方表明这甚至可能是通过 Web 发送 XML 的有效格式。但我还没有找到任何可以帮助我解组或解析它的信息。
有没有人有什么建议?当涉及到这些类型的问题时,我通常非常足智多谋(因此这是我在这里的第一个问题),但这个问题让我很难过。提前感谢您提供的任何帮助。