Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP或JavaScript中查询大型XML文件(600mb+;)?_Php_Javascript_Xml - Fatal编程技术网

在PHP或JavaScript中查询大型XML文件(600mb+;)?

在PHP或JavaScript中查询大型XML文件(600mb+;)?,php,javascript,xml,Php,Javascript,Xml,我有一个大的XML文件(600mb+),正在开发一个PHP应用程序,需要查询这个文件 我最初的方法是从文件中提取所有数据并将其插入MySQL数据库,然后以这种方式进行查询。唯一的问题是它仍然很慢,而且XML数据会定期更新——这意味着每次更新XML文件时,我都需要下载、解析XML文件中的数据并将其插入数据库 实际上可以查询600mb的文件吗?(例如,搜索TITLE=“something here”?)是否可以让它在合理的时间内完成此操作 理想情况下,我希望在PHP中实现这一点,尽管我也可以使用Ja

我有一个大的XML文件(600mb+),正在开发一个PHP应用程序,需要查询这个文件

我最初的方法是从文件中提取所有数据并将其插入MySQL数据库,然后以这种方式进行查询。唯一的问题是它仍然很慢,而且XML数据会定期更新——这意味着每次更新XML文件时,我都需要下载、解析XML文件中的数据并将其插入数据库

实际上可以查询600mb的文件吗?(例如,搜索TITLE=“something here”?)是否可以让它在合理的时间内完成此操作

理想情况下,我希望在PHP中实现这一点,尽管我也可以使用JavaScript


任何帮助和建议都值得赞赏:)

为600+Mb的文档构建XML DOM肯定会失败。您需要的是基于API的。尽管SAX通常不允许使用XPath,但您可以使用命令式代码对其进行模拟


对于正在更新的文件,是否可以只检索差异?这将大大加快后续处理的速度。

我曾尝试使用SAX——它可以很好地解析文件,但仍然相对缓慢——我确实可以做一些查询文件的事情。如果没有其他问题,我可能会再次尝试SAX—感谢您的回答:)@Flava-SAX解析通常性能更好,因为它允许文件内容流式传输。确保有足够大的缓冲区,以避免磁盘IO命中。