我需要建议在Delphi中使用什么(我使用Delphi 2009)来尽可能快地处理非常大的
XML文件(例如100 MB).
我需要输入XML,从我的程序中访问和更新其中的数据,然后再次导出修改后的XML.
希望输入和输出可以在快速的Windows机器上在几秒钟内完成.
澄清.我希望我需要使用DOM,因为访问数据结构以开发报告和更新数据非常重要,我需要这个功能非常快.
输入仅对文件加载执行一次,输出仅为文件保存完成,通常在退出时只执行一次.这些也应该很快,但不如内存中数据访问和更新那么重要.
我的理解是第三方解析器只能帮助输入和输出,而不是一旦加载到内存中就使用和修改数据.或者我错了?
如果我正确理解了您的问题,您就知道数据结构,并且您正在
修改数据 – 而不是
文件的XML结构.
在这些条件下,如果性能至关重要,那么您可以尝试使用直接文本操作 – 跳过XML解析.
从流中读取,使用一些快速文本搜索算法,例如Boyer-Moore,找到需要修改数据的地方,进行修改并将数据输出到另一个流中.
这将是一次通过,没有XML解析,没有内存中的XML树构建.