【问题标题】:Load XML element by element, to save memory in PHP逐个加载 XML 元素,以节省 PHP 中的内存
【发布时间】:2011-09-25 09:47:20
【问题描述】:

我需要在低内存系统上读取 XML 文件(无权增加它)。 我试过了:

$xmlString = file_get_contents($file);
$doc= new DOMDocument();
$doc->loadXML($xmlString);

$doc= new DOMDocument();
$doc->load($file);

两者都给我内存错误。

想知道是否有办法按节点顺序读取 XML,因此在任何给定时间只有 1 个节点在内存中。我不在乎这需要多长时间,因为这是一个夜间批处理。

XML 的结构非常简单:

        <InventoryItem>
        <SKU>125244</SKU>
        <Quantity>137196</Quantity>
        <Status>Active</Status>
        </InventoryItem>

可能重复多次。

也许将其视为文本?

非常感谢

【问题讨论】:

    标签: php xml memory


    【解决方案1】:

    您需要像XMLReader 这样的拉式解析器。

    【讨论】:

    【解决方案2】:

    您想使用 SAX parsing(使用 PHP functions 或 XMLReader,如另一个答案中所述)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 2010-11-05
      • 1970-01-01
      相关资源
      最近更新 更多