Поток разобрать 4 ГБ XML-файл в PHP

Я пытаюсь, и мне нужна помощь, чтобы сделать следующее:

Я хочу проанализировать большой XML-файл (4 ГБ) в потоковом режиме с помощью 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>

Я был бы очень признателен за любую помощь вstreaming / потоковый анализ / stream читает исходный XML-файл и затем записывает часть его содержимого в новый XML-файл на PHP.

Ответы на вопрос(2)

Ваш ответ на вопрос