Atom GDATAフィード解析のPHP DOM対SimplexMl
-
04-10-2019 - |
質問
Google AnalyticsデータエクスポートAPIにアクセスするためのライブラリを構築しています。ライブラリがアクセスするすべてのデータはAtom形式であり、全体に多数の異なる名前空間を利用しています。 APIでの私の実験は、これまでのところ解析にsimplexmlを使用しています。特に、私が行ってきたのは、フィード内に保持されているデータにアクセスすることです。
今、私はライブラリを書くために来ています。SimplexMLをForging Forgingが適切であるかどうか、またはPHPのDOMモジュールの機能強化が将来的に有益であるかどうか疑問に思っています。私はまだライブラリのこの部分に多くのコードを書いていないので、選択肢はまだ開いています。
PHP DOMモジュールは、その場でXML Domを構築するか、既存のモジュールを変更する必要がある場合に適している可能性があることを読みましたが、APIの性質のためにその機能が必要になるかどうかは完全にはわかりません。 (たとえば、サーバーにデータをプッシュすることはありません)。 SimplexMLは確かに使いやすく、読み取り専用の状況には必要なのはそれだけだと言っている人を見てきました。
基本的に質問は、何を使用しますか?サーバーの構成はアプリケーションの要件と一致するため、互換性は問題になりません。 PHP DOMを念頭に置いてライブラリを構築する価値はありますか、それともSimplexMLに固執する必要がありますか?
アップデート: 以下は、私が扱うフィードの種類の2つの例です。
解決
私の考え方:
simplexml pro:
- 単純
- 半直感的でない非平均化コード
- ドキュメントを読む/解析するのに最適です
Simplexml Cons:
- XMLを生成するのはひどい。
- 柔軟性とパワーが不足しています
Dom Pro:
- 非常に強力です
- ドキュメントを生成するのに最適です
- 他のDOMスクリプトを行った場合はおなじみになります(例:JavaScript)
Dom Cons:
- 冗長
- 時には不必要に複雑です。
私は個人的にずっとドムに固執するでしょう。それはあなたが行く必要があるどこにでもあなたを連れて行きます。ドキュメントは適切以上であり、あなたの手はすべてのタイピングから痛くなるかもしれませんが、あなたは「なぜそれはできないのか」と考えることは決してイライラすることはありません これ??"
ドキュメントを読むか、非常に基本的な編集を行うだけの場合は、おそらくSimplexMLを使用してください。しかし、私にとっては、私はDOMライブラリに慣れているので、どこでもそれを使用するだけで素晴らしいです。
他のヒント
SimplexMLは、名前空間を完全に扱うことができます。あなたの場合、エントリを繰り返す必要があります。 getNameSpaces
に引数を渡します children
特定の名前空間を持つ子供を要求する方法。
とはいえ、コードを3倍に記述する場合は、DOMを使用できます。
ホイールを再発明する必要がある場合は、おそらくsimplexmlを使用するか、 Zend_gdata (必要なものがそこにある場合)または拡張 zend_feed_atom そうでない場合。どちらのオプションも、おそらくあなたがする必要がある作業の半分の半分が必要です:)