我需要在低内存系统上读取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>
可能会重复一次。
也许将其视为文字?
非常感谢
答案 0 :(得分:3)
你需要像XMLReader这样的拉解析器。
答案 1 :(得分:0)
您想使用SAX parsing(使用PHP functions或XMLReader,如另一个答案中所述。)