入力の選択

入力の選択 -- 異なるタイプの入力データに関する解説

XML_Parser に対する入力の選択

XML_Parser がパースできる入力には、幾つかの種類があります。

setInputFile(), setInputString() もしくは setInput() メソッドを使って入力を指定し、 parse() をコールすれば、 XML の処理を開始することができます。

ファイルのパース

ファイル、もしくは URL のパースをするには、その名前や URI を XML_Parser::setInputFile() を使って指定します。 ファイルシステムにあるファイルだけでなく、fopen() 関数で開くことのできるロケーションも指定できます。 また、この機能と、 ストリーム関数や、PEAR の ストリームパッケージと組み合わせると、 共有メモリやデータベースその他から得られる文書のパースが可能です。

HTTP や FTP ロケーションを標準入力として開くには、 PHP の組み込み ラッパーを使用することもできます。

文字列のパース

XML 文字列をパースするには、その文字列を XML_Parser::setInputString() メソッドを使って XML_Parser(もしくはそのサブクラス)に渡します。しかし、SAX ベースのパーサの 大きな利点として、XML 文書全体を処理にあたって読み込む必要がないことがあります。 ですから、非常に大きい文書をパースする場合は、 setInputString() を使用せずに、setInput() もしくは setInputFile() を使うべきです。

リソースのパース

第3に、あまり使われないようですが、XML_Parser の入力として fopen() が返すファイルポインタなどの PHP リソースを 指定することができます。これは、XML 文書が on-the-fly で生成され、 すでにオープン済みである場合などに有用です。わざわざファイルをクローズし ファイル名を XML_Parser に渡す代わりに、 XML_Parser::setInput() を使ってリソースを渡すことができます。 fseek() を使って、ファイルポインタが正しい位置にあるかどうかを 確認するようにしてください。