我正在尝试弄清楚如何在PHP(最新版本)中从非常大的XML文件中删除元素(和其子元素)。
我知道我可以使用dom和simpleXml,但那将需要将整个文档加载到内存中。
我正在查看XML writer / reader / parser函数并进行谷歌搜索,但似乎没有关于此主题的内容(所有答案都建议使用dom或simpleXml)。这不可能是正确的-我错过了什么吗?
我找到的最接近的内容是(C#):
您可以使用XmlReader逐个读取xml(ReadOuterXml在您的情况下可能有用以一次读取整个节点)。然后使用XmlWriter编写要保留的所有节点。(从大型XML文件中删除节点)
真的吗?就是这种方法吗?我必须复制整个巨大的文件吗?
难道真的没有其他方法吗?
一种方法
如建议所示,
我可以使用php的XML读取器或解析器读取数据,可能会缓冲它,并将其写入/转储 + 追加回新文件中。
但是这种方法真的实用吗?
我曾经尝试过使用建议的方法将巨大的XML文件拆分成较小的部分,但是这个过程花费了很长时间。
我的数据集目前还不够大,无法让我了解如何处理它。我只能假设结果将是相同的(一个非常慢的过程)。
有人有将此应用于实践的经验吗?