Simple HTML DOM Parserで特定の属性値を持つものを取得

2011/05/11

Simple HTML DOM Parserでalt属性の値が「xxx」のものだけやtitle属性の値「xxx」だけとか取得したい。

特定の属性を持っている全部のタグの属性値を取得

例えばbodyタグ内にあるすべてのタグを対象に、alt属性を保有しているタグのalt属性の値を取得する。

  1. $attr = $dom->find('body *[alt]');
  2. foreach( $attr as $val){
  3.   $str[] = $val->alt;
  4. }

特定の属性値を持っている全部のタグの属性値を取得

例えばbodyタグ内にあるすべてのタグを対象に、alt属性を保有しており、その値が「recatnap」であるタグのalt属性の値を取得する。

  1. $attr = $dom->find('body *[alt=recatnap]');
  2. foreach( $attr as $val){
  3.   $str[] = $val->alt;
  4. }

特定の属性値を持っていない全部のタグの属性値を取得

例えばbodyタグ内にあるすべてのタグを対象に、alt属性を保有しており、その値が「recatnap」ではないタグのalt属性の値を取得する。

  1. $attr = $dom->find('body *[alt!=recatnap]');
  2. foreach( $attr as $val){
  3.   $str[] = $val->alt;
  4. }

特定の属性を持ち、その値がNULLではない全部のタグの属性値を取得

例えばbodyタグ内にあるすべてのタグを対象に、alt属性を保有しており、その値が「NULL」ではないタグのalt属性の値を取得する。

「*[alt!=NULL]とやればいいじゃん」と思いきやダメっぽい。
「じゃぁ、*[alt!=””]とやればいいじゃん」と思いきやこれもダメっぽい。
面倒だけど一手間かける。

  1. $attr = $dom->find('body *[alt]');
  2. foreach( $attr as $val){
  3.   if( $val->alt !== “” ){
  4.     $str[] = $val->alt;
  5.   }
  6. }

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい