チップス

xmlとPHP5についての情報


IBMのページですがXMLファイルにたいして,PHP5で DOM と SimpleXML を使った例などがあり勉強になります。
XMLについて基礎を身につけプログラミングに活かすようにしましょう。

XMLを処理する例としてライブドアの天気予報を表示するという記事があり、プログラムも掲載されております。

XML パーサ関数
XML 操作関数

PHP 開発者のための XML: 第 1 回 PHP での XML を 15 分で学ぶより

今日のアプリケーション開発環境では、XML の重要性を無視することはできません。この入門ガイドでは、まだ PHP で XML を扱ったことがない人、あるいはまだ PHP5 に移行していない人のために、XML に関して PHP5 に追加された新機能の利用方法を紹介します。この記事を読むことによって、PHP5 では XML の処理がいかに容易であるかを理解できるはずです。今回は 3 回シリーズの第 1 回として、クイック・スタート API に焦点を当て、開発者が単純かつ予測可能で比較的小規模な XML 文書を扱う場合に、SimpleXML が (必要な場合には DOM と組み合わせることで) いかに理想的な選択肢であるかを説明します。このような文書こそ、まさに、送信フォームのコンテンツを含む Ajax アプリケーションや、weather.com などの Web サービス API (application programming interface) のレスポンスを含む Ajax アプリケーションなどが渡す種類の文書なのです。

PHP5 で XML に関して新しくなった点

PHP5 には、完全に作成し直された新規のエクステンションが含まれています (例えば SAX パーサーや DOM、SimpleXML、XMLReader、XMLWriter、そして XSLT プロセッサーなど)。こうしたエクステンションは、今やすべて libxml2 をベースにしています。

PHP5 は、PHP4 よりも改善された SAX サポートの他、W3C に従う DOM と SimpleXML エクステンションをサポートしています。SAX も DOM も SimpleXML も、すべてデフォルトで有効です。他の言語での経験から DOM に慣れている人は、PHP でも同様の機能をコーディングするのが以前よりも楽になるでしょう。

DOM エクステンション

DOM (Document Object Model) は、HTML 文書や XML 文書を表現するための W3C 標準のオブジェクト・セットであり、そうしたオブジェクトの組み合わせに関する標準モデルであり、そしてそれらを利用し、操作するための標準インターフェースです。多くのベンダーが、ベンダー独自のデータ構造や API へのインターフェースとして DOM をサポートしています。そうしたことから DOM モデルに慣れた開発者が多く、DOM モデルは信頼されています。メモリー上での DOM の構造は元々の XML 文書と似ているため、DOM は理解しやすく、また容易に使いこなすことができます。DOM はアプリケーションに情報を渡すために、XML ファイルの要素ツリーをそのまま複製したオブジェクト・ツリーを作成します (各 XML 要素がツリーのノードです)。DOM はツリー・ベースのパーサーです。DOM は文書全体のツリーを作成するため、大量のメモリーと CPU 時間を使用します。従って、パフォーマンスの問題から、大きな文書を DOM で構文解析するのは非現実的です。この記事の中での DOM エクステンションの主な使用法は、ストリングあるいは XML ファイルとして使用するために、SimpleXML フォーマットをインポートして DOM フォーマットの XML を出力する、あるいはその逆の使い方です。

SimpleXML

SimpleXML エクステンションは、XML 文書を構文解析するために最適なツールです。SimpleXML エクステンションは、PHP5 を必要としており、また XML ファイルの作成と、組み込み XPath のサポートを行うために、DOM との相互運用ができるようになっています。SimpleXML は、複雑でなく、レコード形式のようなデータ (例えば同じアプリケーション内部の別の部分から文書あるいはストリングとして渡される XML など) に最適です。その XML 文書があまり複雑ではなく、あまり深くなく、複合コンテンツを含まなければ、SimpleXML は (その名前どおり) DOM よりもコーディングが容易です。また、既知の文書構造を扱う場合には、DOM よりも高い信頼性を持っています。


   チップス