【问题标题】:Storing, parsing and editing hundreds of XML files存储、解析和编辑数百个 XML 文件
【发布时间】:2013-07-23 21:26:18
【问题描述】:

我开发了一个界面,用户将上传一个包含数百个 XML 文件的 zip 文件,其中 XML 文件大约在 200 到 8000 行之间。

上传 ZIP 文件后,必须提取所有 XML 文件并显示给用户,因为用户需要手动编辑文件并批准 XML 文件的内容,然后才能将其移动并永久存储在服务器。

从永久存储中,所有 XML 文件都将通过私有 API 调用返回给请求用户。

让我感到困惑的是数据应该存储在临时或永久存储中的方式,因为它需要编辑、排序、分页和搜索 XML 文件中的内容。

我正在探索多种选择,其中一些是。

  1. 使用 MySql 数据库存储数据
  2. 使用像 Apache Lucene 这样的全文搜索引擎来存储(这可能是个坏主意,但不确定)。
  3. 将其存储在永久目录中并直接读取/写入文件。

我想知道是否有人遇到过类似的问题,或者采取这种情况的可行方法是什么?

P.S : 我正在使用 Zend Framework 和 Doctrine 进行应用程序开发。

【问题讨论】:

    标签: xml zend-framework large-data


    【解决方案1】:

    如果数据不以任何其他方式使用,而不是作为 XML 文件使用(因此不需要对数据进行查询或搜索),那么最好将数据保存在文件中。将其存储在数据库中会增加不必要的开销,尤其是因为您不断在 db 和 XML 之间来回转换数据。

    如果是这种情况,我会使用例如 SimpleXML (http://php.net/manual/en/book.simplexml.php) 编写一个包装器,它可以执行基本任务,例如循环遍历 XML 文件、保存行等。如果您需要添加某种搜索功能,您可以可能使用 DOMXPath (http://www.php.net/manual/en/class.domxpath.php) 添加一些很酷的东西。

    另一方面,如果以其他方式(如 API、查询搜索等)需要数据,我会解析传入的 XML 文件并将它们存储在数据库中。

    附言。我想补充一点,如果客户对系统和功能的长期意图不是 100% 清楚(只有您可以以某种方式确定),我会选择数据库存储,尽管如果只使用 XML 格式会产生开销。如果所有内容都整齐地存储在数据库中,那么添加计算、搜索、数据合并等新功能就不是问题。如果您有一个充满 XML 文件的驱动器,您可能需要重写大量代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2023-03-28
      • 2012-04-03
      • 1970-01-01
      • 2013-02-11
      • 2012-05-24
      相关资源
      最近更新 更多