「一気に最後まで読んだ」本、教えて下さい!

バイナリファイルの中、MIME boundary1の後、ヘッダーの部分のXMLで書かれたテキストファイルあります。そのXMLヘッダー文をパースしたい。
バイナリファイルのほかのところにMIME boundary2の後バイナリ形式のデータあります。

Googleで調べたけど、なにかは見つかったけど、理解できず困っています。

バイナリファイルを一バイトづつ読んで、Integer.toHexString()を使うとASCIIの形でXMLの部分はそのまま (フォーマットなしで)、バイナリデータの分は化けた表示されます。

だいたいのアウトラインでよいです。やり方ご存知の方、教えてください。

(1)boundary1の後書かれたXML式データを読む方法
(2)boundary2の後、決まったキーワードが入っていたら、そこから決まったバイト数までのバイナリデータを読む方法

その決まったキーワードと決まったバイト数はヘッダーのXML内に書かれています。

A 回答 (1件)

MIME boundaryがあるのにバイナリファイルというのがよく分かりません。

メールとかで使われるMIMEのmultipart形式はテキストなので、それとは違う何かなのでしょうが。
boundaryの部分も含めて、XMLパートとバイナリパートの初めのほうだけ具体例を示すことはできませんか?

> バイナリファイルを一バイトづつ読んで、Integer.toHexString()を使うとASCIIの形でXMLの部分はそのまま (フォーマットなしで)、バイナリデータの分は化けた表示されます。

もしMIME multipartであれば、各パート毎にContent-TypeとかContent-Transfer-Encodingが指定されていると思うので、それに従って読み込んでください。

XMLの解析には、DOMとかSAXとかのXML parserを使ってください。

この回答への補足

salsberryさん

業務の都合で具体例は申し訳ありませんが、ご指摘の通り、テキストファイルです。
ファイル内組み込まれたバイナリデータとファイルタイプを感違えました。(汗)

そのテキストファイルの中で、
--MIME_boundary-1
Content-Type: text/xml; charset="UTF-8"
Content-Transfer-Encoding: 8bit
直後
(1)XML式でヘッダー情報

--MIME_boundary-2
Content-Type: application/octet-stream
Content-Location: XXX.bin
直後
(2)バイナリデータ

のかたちです。

疑問・質問:--MIME_boundary-2のところ、Content-Transfer-Encodingの指定がなく、
代わりにContent-Location: XXX.binがあります。「.bin」でバイナリを示していると思います。

>もしMIME multipartであれば、各パート毎にContent-Typeとか
>Content-Transfer-Encodingが指定されていると思うので、
>それに従って読み込んでください。
>XMLの解析には、DOMとかSAXとかのXML parserを使ってください。

そうです。MIME multipartです。
だいぶ見えてきました。ありがとうございます。
この情報わかった上でググってみます。

もう一度、ありがとうございます。

補足日時:2013/08/20 03:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!