2011-08-14 4 views
2

TD에 이미지가없는 경우 continue;이 필요합니다.TD에 이미지가 없으면 무시하고 계속하는 방법은 무엇입니까?

if(!$image){continue;} 

그러나 그것은 작동하지 않았다 :

나는이 시도.

<?php 
    ///////////////////////////////////////////////////////////////////// 
     $html=' 
      <table> 
       <tr> 
        <td colspan="2"> 
         <span>green</span> 
         <img src="green.gif" /> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <span>yellow</span> 
         no image !! 
        </td> 
        <td> 
         <span>red</span> 
         <img src="red.gif" /> 
        </td> 
       </tr> 
      </table> 
      <table> 
       <tr> 
        <td> 
         <span>black</span> 
         <img src="black.gif" /> 
        </td> 
       </tr> 
      </table> 
     '; 
    ///////////////////////////////////////////////////////////////////// 
     $dom = new DOMDocument(); 
     $dom->loadHTML($html); 
     $xpath = new DomXPath($dom); 
    ///////////////////////////////////////////////////////////////////// 
     $query = $xpath->query('.//table/tr/td'); 
     for($x=0,$results=''; $x<$query->length; $x++) 
     { 
      $x1=$x+1; 

      $color = $query->item($x)->getElementsByTagName('span')->item(0)->nodeValue; 
      $image = $query->item($x)->getELementsByTagName('img'); 
      if(!$image){continue;} 
      $image = $image->item(0)->getAttribute('src'); 

      $results .= "color $x1 is : $color - and- image $x1 is : $image<br/>"; 
     } 
     echo $results; 
    ///////////////////////////////////////////////////////////////////// 
?> 

어떻게하면됩니까? (loadHTML는 HTML 골격을 추가하기 때문에)

.//table/tr/td[img] 

또는 함께

답변

2

시도 :

if(!count($image)){continue;}

그러나 Gordon이 제안한대로 쿼리를 수정하는 것이 훨씬 효율적입니다.

+0

대단히 prodigitalson 고맙다, 당신의 대답은 내가 필요로하는 .. –

2

보십시오 :

/html/body/table/tr/td[img] 

참조 http://codepad.viper-7.com/TsMVxe

+0

고든에게 고맙습니다.하지만 루프 내부에 필요합니다. 덕분에 많이 .. –

+0

@ al-dr 왜 루프에 필요합니까? img 자식 요소가있는 노드 만 직접 가져 오는 대신 루프에서 건너 뛰는 것이 더 나은 이유는 무엇입니까? – Gordon

+0

안녕하세요 고든, 때로는 조건부로 만들 필요가 있기 때문에 if (! $ image) {$ image = 'default value';} –

관련 문제