私はしようとしていて、次のことをするのに助けが必要です:
大きな XML ファイル (4 GB) を PHP でストリーム解析したいと考えています。ファイル全体をメモリにロードするため、単純な XML や DOM を使用できないため、ファイルをストリーミングできるものが必要です。
PHPでこれを行うにはどうすればよいですか?
私がやろうとしているのは、一連の<doc>
要素をナビゲートすることです。そして、その子の一部を新しい xml ファイルに書き込みます。
解析しようとしている XML ファイルは次のようになります。
<feed>
<doc>
<title>Title of first doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
<links>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
</link>
</doc>
<doc>
<title>Title of second doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
<links>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
<sublink>Link is here</sublink>
</link>
</doc>
</feed>
要素とその子<doc>
を除く、各要素のすべての子を新しい XML ファイルに取得/コピーしようとしています。<links>
したがって、新しい XML ファイルは次のようになります。
<doc>
<title>Title of first doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
</doc>
<doc>
<title>Title of second doc is here</title>
<url>URL is here</url>
<abstract>Abstract is here...</abstract>
</doc>
ストリーミング、ストリーム解析、元の XML ファイルのストリーム読み取り、およびその内容の一部を PHP で新しい XML ファイルに書き込む際に、あらゆる助けをいただければ幸いです。