我正在尝试并需要一些帮助来执行以下操作:
我想用 PHP 流式解析一个大的 XML 文件(4 GB)。我不能使用简单的 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 文件方面的任何和所有帮助。