解析している通常のテキストを含む大きなテキスト ファイルがありますが、その中には base64 でエンコードされたテキストのブロックがあるセクションがあります。このテキストをデコードして、パーサーで読み取れるようにする必要があります。スクリプト内で base64 デコーダーを使用しようとしましたが、base64 テキストを通常のテキストで囲むと機能しません。これらのセクションを切り取ってデコードする方法について、誰かアイデアがありますか? テキスト ファイルは長く、これらの base64 セグメントがいくつか含まれます。ブロックの周りで一致するのは、「X-Attachement-ID: xxx」、空の行、ブロック、およびその次の行の「--xxx--」のみです。
Perl スクリプトを使用して、.txt ファイルを解析して読み取ります。
テキストファイルのカットアウトの例を以下に掲載します。
Content-Type: text/xml; charset=US-ASCII; name="1415160277.xml"
Content-Disposition: attachment; filename="1415160277.xml"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h8oq2dh20
PD94bWwgdmVyc2lvbj0iMS4wImVuY29kaW5nPSJVVEYtOCI/Pg0KPEluZnJpbmdlbWVudCB4c2k6
c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudGVzdC5jb20vQUNOUyBodHRwOi8vd3d3LnRlc3Qu
Y29tIiB4bWxucz0iaHR0cDovL3d3dy50ZXN0LmNvbS9BQ05TIiB4bWxuczp4c2k9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj48Q2FzZT48SUQ+MTQxNTE2MDI3Nzwv
SUQ+PFN0YXR1cz5PcGVuPC9TdGF0dXM+PFNldmVyaXR5Pk5vcm1hbDwvU2V2ZXJpdHk+PC9DYXNl
PjxDb21wbGFpbmFudD48RW50aXR5PnRlc3Q8L0VudGl0eT48Q29udGFjdD50ZXN0IENvcHlyaWdo
dCBJbmZyaW5nZW1lbnQ8L0NvbnRhY3Q+PEFkZHJlc3M+PC9BZGRyZXNzPjxQaG9uZT48L1Bob25l
PjxFbWFpbD50ZXN0QHRlc3QuY29tPC9FbWFpbD48L0NvbXBsYWluYW50PjxTZXJ2aWNlX1Byb3Zp
ZGVyPjxFbnRpdHk+dGVzdDwvRW50aXR5PjxDb250YWN0PnRlc3Q8L0NvbnRhY3Q+PEFkZHJlc3M+
dGVzdA0KPC9BZGRyZXNzPjxQaG9uZT50ZXN0PC9QaG9uZT48RW1haWw+PC9FbWFpbD48L1NlcnZp
Y2VfUHJvdmlkZXI+PFNvdXJjZT48VGltZVN0YW1wPnRlc3Q8L1RpbWVTdGFtcD48SVBfQWRkcmVz
cz50ZXN0PC9JUF9BZGRyZXNzPjxUeXBlPkJpdFRvcnJlbnQ8L1R5cGU+PFVzZXJOYW1lPjwvVXNl
ck5hbWU+PE51bWJlcl9GaWxlcz4xPC9OdW1iZXJfRmlsZXM+PC9Tb3VyY2U+PENvbnRlbnQ+PEl0
ZW0+PFRpdGxlPnRlc3Q8L1RpdGxlPjxJbmZvSGFzaD50ZXN0PC9JbmZvSGFzaD48L0l0ZW0+PC9D
b250ZW50PjxIaXN0b3J5Lz4
--047d7b5d9603ea951104ccd17c87--',
\'MIME-Version: 1.0
Received: by --- with HTTP; Wed, 24 Oct 2012 10:38:10 -0700 (PDT)
Date: Wed, 24 Oct 2012 10:38:10 -0700
base64 ブロックのデコードは次のとおりです。
<?xml version="1.0"encoding="UTF-8"?>
<Infringement xsi:schemaLocation="http://www.test.com/ACNS http://www.test.com" xmlns="http://www.test.com/ACNS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Case><ID>1415160277</ID><Status>Open</Status><Severity>Normal</Severity></Case><Complainant><Entity>test</Entity><Contact>test Copyright Infringement</Contact><Address></Address><Phone></Phone><Email>test@test.com</Email></Complainant><Service_Provider><Entity>test</Entity><Contact>test</Contact><Address>test
</Address><Phone>test</Phone><Email></Email></Service_Provider><Source><TimeStamp>test</TimeStamp><IP_Address>test</IP_Address><Type>BitTorrent</Type><UserName></UserName><Number_Files>1</Number_Files></Source><Content><Item><Title>test</Title><InfoHash>test</InfoHash></Item></Content><History/><Notes/></Infringement>