php - 用php加速xml解析

标签 php parsing xmldom

您好,我有一个包含大约 12,000 条记录的 xml 文件。我已经编写了代码,它工作正常,只需要一段时间来解析 xml 文件并返回内容。有什么办法可以加快这个过程吗?

我的代码:

<?php 
$dom = new DOMDocument(); 
$dom->load('comics.xml'); 
foreach ($dom->getElementsByTagName('record') as $entry) 
{   
$title = $entry->getElementsByTagName('title')->item(0)->textContent;   
echo $title;   

} 
?>

XML 文件(里面只有 1 个演示无法链接所有内容,哈哈):

<?xml version='1.0' encoding='utf-8'?>
<calibredb>
  <record>
    <id>1</id>
    <uuid>991639a0-7cf6-4a34-a863-4aab8ac2921d</uuid>
    <publisher>Marvel Comics</publisher>
    <size>6109716</size>
    <title sort="Iron Man v1 101">Iron Man v1 101</title>
    <authors sort="Unknown">
      <author>Unknown</author>
    </authors>
    <timestamp>2012-04-15T18:49:22-07:00</timestamp>
    <pubdate>2012-04-15T18:49:22-07:00</pubdate>
    <cover>M:/Comics/Unknown/Iron Man v1 101 (1)/cover.jpg</cover>
    <formats>
      <format>M:/Comics/Unknown/Iron Man v1 101 (1)/Iron Man v1 101 - Unknown.zip</format>
    </formats>
  </record>
  </calibredb>

最佳答案

DOM 方法适用于小型数据集,因为所有 XML 结构都被解析并放入内存中。

在您的情况下,您应该在解析大型 XML 文件时使用 SAX 方法,因为 XML 文件是逐行读取的,而不是一次读取所有内容。

谷歌有一些例子:https://www.google.lv/search?q=php+SAX+XML

关于php - 用php加速xml解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11730860/

相关文章:

python - 使用python解析带有按钮 "Load More"的网页

javascript - jQuery JSON 解析 - 对象元素

Oracle:如何显示 DBMS_XMLDOM.DOMDocument 以进行调试?

xml - 使用vbscript读取xml文件

php - Laravel 更新后用户模型错误(类 User 包含 3 个抽象方法)

php - 连接 3 个 MySQL 表时遇到问题,从两个表中检索数据 (CodeIgniter)

php函数参数错误抑制,empty() isset() 仿真

php - 网站抓取后的奇怪符号

xml - 如何使用 vbscript 删除 XML 文件中的节点?

php - 清除表中的所有数据,但保留列/结构