Php 我应该将XML提要保存在数据库中还是使用XML解析器来处理它?

Php 我应该将XML提要保存在数据库中还是使用XML解析器来处理它?,php,xml,database,Php,Xml,Database,我正在创建一个价格比较脚本,该脚本将使用许多商店提供给我的XML提要。 这些XML将具有与下面相同的结构 <product id="449135"> <name>MadBiker 600</name> <link>MadBiker-600.html</link> <price_with_vat>107.01</price_with_vat> <category id="148807">For

我正在创建一个价格比较脚本,该脚本将使用许多商店提供给我的XML提要。 这些XML将具有与下面相同的结构

    <product id="449135">
<name>MadBiker 600</name>
<link>MadBiker-600.html</link>
<price_with_vat>107.01</price_with_vat>
<category id="148807">For men</category>
<image width="280" height="280">p1.1.jpg</image>
<description>desc goes here</description>
     </product>

摩托600
MadBiker-600.html
107.01
男人
p1.1.jpg
笛卡尔在这里
要解决这个问题,我有两个选择。继续处理XML平面文件或将这些数据/值保存到数据库中。我读过一些低内存解析器,比如SAX/XMLReader

我更感兴趣的是对单个文件使用解析器,而不是使用RDBMS

你对此有何看法


谢谢

这主要取决于您希望将数据放入的用途

我假设您希望能够对数据进行排序和筛选(例如,“按价格排序,desc”或“按类别筛选=mens”)。我还假设您需要某种“相关性”计算和搜索功能

我还假设您将不断添加、删除和更改比较数据

从广义上讲,在SQL中做这些事情比解析XML文件更容易——特别是在规模上


另一方面,SQL很难为不同类型的产品表示不同的数据属性(自行车可能需要车架尺寸,衣服可能需要颜色)。如果这是问题的一部分,那么XML使数据存储变得更容易——您可以定义模式/dtd并编写遵循该模式的文档

您是否考虑过使用诸如ApacheXindice之类的xml数据库,或者仅使用xml作为传输格式并以不同的格式存储数据?请看,您的意思是创建XML,然后将其保存到数据库中以获得更好的性能(如mysql或您提到的那些),而不是使用平面文件应用程序吗?或多或少,是的。但我不会“创建”xml文档,而是将收到的文档存储在xml数据库中。或者——因为示例片段在我看来不是很层次化——编写一个转换器,并将数据存储在任何您喜欢的关系数据库系统中,例如mysql。如果我选择将它们保存在数据库中,创建单个全局XML只会是时间上的麻烦,对吗?关于你给我的建议,你有什么链接或编码示例吗?你计划使用什么RDBMS?