HTMLScrapingで苦戦

正確にはHTMLScrapingのサンプルスクリプトHTMLToFeed.class.phpを紐解く際に苦戦しているのですが。


自分であれこれ書いている時は、知らないことは書くことができないので、わからないことは一つ一つしか出てきません。
したがって一つ一つ理解していけばいいので苦労はたかがしれています。
しかし、ライブラリを使えば、知らない処理をたくさんしているので、使おうとすると悲鳴が(><。。。


だからHTMLScrapingが悪いんじゃないです。私がお馬鹿なだけ(TxT)

exit()

exit ? メッセージを出力し、現在のスクリプトを終了する

void exit ([ string $status ] )
void exit ( int $status )


PHP: exit - Manual
 http://jp.php.net/manual/ja/function.exit.php


その名のとおりでしたorz


そうすると

exit($xml->asXML());


は、

status が文字列の場合は、この関数は終了直前に status を表示します。

status が integer の場合は、 その値は終了ステータスとしても用いられます。終了ステータスは 0 から 254 までの値でなければなりません。終了ステータス 255 は PHP に予約されており、使用してはいけません。ステータス 0 は、 プログラムを正常終了させる際に使用します。


ということなので、$xml->asXML()を表示、ってことですね。
exitって関数じゃなくて言語構造だそうです。
しかも、

この言語構造は、die() と等価です


あ、MySQL呼ぶ時に書いたこれは言語構造でこういう役割を果たしていたのか。
それと同じと理解すればいいわけなのね、なるほど。


ちゃんとマニュアルを読むと理解が深まるなぁ(負け惜しみ)。


asXMLって何?

SimpleXMLElement->asXML() -- SimpleXML 要素に基づき整形式の XML 文字列を返す


PHP: SimpleXMLElement->asXML() - Manual
 http://php.interec.es/manual/ja/function.simplexml-element-asxml.php


なるほど。「親オブジェクトのデータを XML version 1.0 形式にフォーマット」するそうで。



そうすると、

exit($xml->asXML());




$xml = $xml->asXML();
exit($xml);

は、同じ意味ですね。うん(なんか間違えて軌道修正したらしい^^;)


XMLの同一要素は配列として辿る

XMLの同じ名称の要素が複数並列?にある場合ってどうやって指定するの?と思ったら、最初の頃に読んだページに戻ってきました(^^;;)

book要素は複数あるので、配列として扱うことができます。3番目のbook要素へは、

$article->book[2]
としてアクセスすることができます。


▽PHP5を試してみる - SimpleXML関数でRSSしてみる (Do you PHP?)
 http://www.doyouphp.jp/php5/php5_simplexml.shtml


なるほど。


$this->

$this->って、具体的になんじゃろーと思ってたら

$this は、 「自分自身」を指します。


▽第3回:PHP応用 [9.クラスとオブジェクト] (STACK*)
 http://www.stackasterisk.jp/tech/php/php03_09.jsp


名は体を表す、ですね(^^;