2

我正在构建一个库来访问 Google Analytics Data Export API。库访问的所有数据都是 Atom 格式,并且自始至终使用许多不同的名称空间。到目前为止,我对 API 的实验一直使用 SimpleXML 进行解析,尤其是当我一直在做的只是访问提要中保存的数据时。

现在我要编写一个库,我想知道是否继续使用 SimpleXML 是否足够,或者 PHP 中 DOM 模块的增强功能是否会在未来受益。我还没有为库的这一部分编写太多代码,所以选择仍然是开放的。

我已经读过,如果您需要即时构建 XML DOM 或修改现有的 XML DOM,PHP DOM 模块可能是一个更好的选择,但由于 API 的性质,我并不完全确定我是否需要该功能(例如,不向服务器推送数据)。SimpleXML 确实更易于使用,而且我看到有人说,对于只读情况,它就是您所需要的。

本质上的问题是,你会用什么?兼容性将不是问题,因为服务器配置将符合应用程序的要求。是否值得考虑使用 PHP DOM 构建库,还是我现在应该坚持使用 SimpleXML?

更新:以下是我将要处理的两种提要示例:

  1. 帐户提要
  2. 数据馈送
4

3 回答 3

5

我的看法:

SimpleXML 优点:

  • 简单的
  • 半直观的非冗长代码
  • 非常适合阅读/解析文档

SimpleXML 缺点:

  • 生成 XML 很糟糕。
  • 缺乏灵活性和力量

DOM 优点:

  • 非常强大
  • 非常适合生成文档
  • 如果您做过任何其他 DOM 脚本(例如:在 Javascript 中),将会很熟悉

DOM 缺点:

  • 详细
  • 有时不必要的复杂。

我个人会一直坚持使用 DOM。它会带你去任何你需要去的地方。文档绰绰有余,尽管您的手可能会因所有打字而感到酸痛,但您永远不会因为“为什么不能这样做?? ”而感到沮丧。

如果您需要做的只是阅读文档或进行一些非常基本的编辑,那么可能会选择 SimpleXML。然而,对我来说,我已经习惯了 DOM 库,所以我只是到处使用它,这很棒。

于 2010-05-24T14:07:11.023 回答
0

SimpleXML 完全能够处理名称空间。在您的情况下,您只需要遍历条目,使用getNameSpaces并将参数传递给该children方法以请求具有特定命名空间的子项。

也就是说,如果你想编写 3 倍的代码,你可以使用 DOM。

于 2010-05-24T14:06:48.590 回答
0

好吧,如果您需要重新发明轮子,我可能会使用SimpleXML ... 任何一个选项都应该是你需要做的工作量的一半:)

于 2010-05-24T14:08:40.880 回答