入力の選択
入力の選択 – 異なるタイプの入力データに関する解説
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() を使って、ファイルポインタが正しい位置にあるかどうかを
確認するようにしてください。