3

如果我有 50,000-100,000 个产品 sku 以及附带的信息,包括规格和描述,需要定期更新(至少每天一次),那么 XML 是作为数据交换格式的最佳方式吗?该应用程序是用 PHP 编写的,我正在考虑将 SimpleXML 用于 PHP 的本机 MySQL 调用(而不是使用应用程序挂钩将数据转储到数据库中的适当位置)。该服务器将基于 Linux,我将拥有完全的 root 访问权限。我知道这是一个相当笼统的问题,这就是我将其设为社区 wiki 的原因——我正在寻找一种被认为是最佳实践的整体方法。如果重要,应用程序是 Magento。

4

4 回答 4

6

您必须为给定场景定义“最佳”参数。

XML 很冗长,这意味着两件事

  • 您可以提供有关数据的大量详细信息,包括元数据
  • 文件大小会很大

使用 XML 获得的另一个优势是使用 XPath 等工具“开箱即用”地进行更高级的解析/选择。

但是您可以选择许多其他格式,每种格式都有自己的优点和缺点

还有其他几个。

我的观点是,你需要弄清楚什么对你的系统很重要(速度?字符集支持?人类可读性?)并选择一种双方都兼容的格式。

于 2009-07-01T14:33:19.123 回答
1

XML 唯一真正的缺点是它非常冗长。与其他格式相比,XML 文件通常非常大。好处是它相对容易阅读(对于人)和解析(对于软件)。只有 100K 记录(不知道每条记录的大小)我想我会使用 XML。

于 2009-07-01T14:20:29.897 回答
1

JSON 占用的空间比 XML 少得多,尽管 XML 压缩得很好。XML还有很多成熟的库和工具的优势。

如果您与 3rd 方源交换数据,您可能希望使用 Schema 验证 XML。JSON 没有。

就我个人而言,我最终大部分时间都使用 XML。如果空间是个问题,我会对 XML 数据应用 gzip 压缩。

于 2009-07-01T23:36:31.737 回答
0

我目前在电子商务项目中使用 XML 作为导入格式。它目前拥有超过 10,000 种产品、属性和描述,并且将很快迭代数据。不过,在这件事上,我别无选择。

使用 SOAP 将是仅接收原始 XML 的可行替代方案(尽管,我认为这会增加性能成本,因为 SOAP 使用 XML 作为它的消息传递格式),但是,您可以将数据作为原生 PHP 类型获取,例如一个数组,您可以直接将其传递给 DAL 以插入数据库,从而避免构建 SimpleXML 对象的需要。

于 2009-07-01T14:31:55.270 回答