アプリ版:「スタンプのみでお礼する」機能のリリースについて

perl、HTML::TreeBuilderモジュールを使ってHTMLからほしい情報を抽出しています。
探したタグがない場合に、次の処理にいけるように判定したいのですが、うまくいきません。

以下抽出部分のソースです。
my $tree = HTML::TreeBuilder->new;
$tree->parse($html);
my $items = $tree->look_down('class', 'referencelink')->find('li');
$items = $items->as_text;
 

HTML内に<li class="referencelink">というタグがない場合
$items にどんな値が入るのでしょうか。

if (!defined($items)) や if ($items=="")で判定しても、
my $items = $tree->look_down('class', 'referencelink')->find('li');
で処理が止まってしまいます。

どうしたらよいでしょうか?
よろしくお願いいたします。

A 回答 (1件)

「my $items = $tree->look_down('class', 'referencelink')->find('li');


で処理が止まってしまいます」
というなら, 「if (!defined($items)) や if ($items=="")で判定」するタイミングってないと思うんだけど....

ちと調べた限りでは, いったん look_down の返り値を変数で受けないとダメっぽい.

参考URL:http://www.foo.be/docs/tpj/issues/vol5_3/tpj0503 …

この回答への補足

my $items = $tree->look_down('class', 'referencelink')->find('li');

ではなく

my $items = $tree->look_down('class','referencelink');

こちらでも、ほしかった部分を抽出できました。
こちらだと、次の処理が止まらず
if($items != "")で判定することができました!

お早い回答ありがとうございます!

補足日時:2011/11/23 01:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!