PHP専門のQ&Aサイト SUKEGRA

悩めるプログラマーを「ッターン!」と助太刀!

filterXPathで値が取得できない場合にThe current node list is empty.というエラーが出る


投稿者:匿名 投稿日時: 2015年3月31日
カテゴリー:
構文・記述方法について
タグ:

とあるプログラムでmetaのdescriptionを取得しています。
基本的には以下のコードで問題なく取得できるんですが、descriptionが無いサイトだとタイトルの通りのエラーが出ます。

$crawler->filterXPath('//meta[@name="description"]')->attr('content');

issetに入れてみても同じくエラーになります。

if ( isset($crawler->filterXPath('//meta[@name="description"]')->attr('content')) )

どうにか値が存在しない場合を判定する方法は無いでしょうか?


0 支持

ログインまたはユーザー登録してから回答してください。

回答 1

 
ベストアンサー
投稿者:oxy (600 ポイント) 投稿日時: 2015年3月31日

filterXPathでは存在の確認にcount()を使います。
isset()も必要なく以下のようにすれば意図したとおりに動作するはずです。

if ( $crawler->filterXPath('//meta[@name="description"]')->count() )
投稿者:匿名 投稿日時: 2015年4月1日
ありがとうございました。
無事に動作しました。
...