2014-01-31 37 views
2

我的问题很简单。 比方说,我有多个“一”:PHP简单的HTML DOM解析器:选择两个类

<td class="autoindex_td"> 

     <a class="autoindex_a snap_shots" href="http://example.com.html"> 
      <img height="16" width="16" src="http://exmple.com/download/index_icons/winxp/sound.png" alt="[mp3]"></img> 
      <strong> 

       05 - example.mp3 

      </strong> 
     </a> 
    </td> 

我只是想找到“强”,这有两班。这里是我的尝试:

foreach ($html->find('a[class=autoindex_a , class=snap_shots]') as $link) { 
    if(isset($link)){ 
    foreach($link->find('strong') as $tag) 
     { 
      $name = $tag->plaintext ; 
      $hiren[] = $name ; 
     } 
    } 
    } 

,但我得到null。所以,我如何选择在同一时间两类?

+0

下一次,请进行搜索对于类似的问题发布前=> http://stackoverflow.com/questions/7387958/find-stacked-div-class-with-simple-html-dom-parser – Enissay

回答

5

只是找到了一个方法:

foreach ($html->find('a[class=autoindex_a snap_shots]') as $link) { 
    if(isset($link)){ 
    foreach($link->find('strong') as $tag) 
     { 
      $name = $tag->plaintext ; 
      $hiren[] = $name ; 
     } 
    } 
    } 
+0

** + 1 **放在这里。 –

+0

啊!那个工作伙伴,你救了我的一天。谢谢。 – Mubin

0

为什么不是DOMDocument Class?

<?php 

$html=' <td class="autoindex_td"> 

     <a class="autoindex_a snap_shots" href="http://example.com.html"> 
      <img height="16" width="16" src="http://exmple.com/download/index_icons/winxp/sound.png" alt="[mp3]"></img> 
      <strong> 

       05 - example.mp3 

      </strong> 
     </a> 
    </td>'; 

$dom = new DOMDocument; 
@$dom->loadHTML($html); 
foreach ($dom->getElementsByTagName('a') as $tag) { 
    if ($tag->getAttribute('class') === 'autoindex_a snap_shots') { 
     foreach($tag->getElementsByTagName('strong') as $strongTag) 
     { 
     echo $strongTag->nodeValue; //"prints" 05 - example.mp3 
     } 
    } 
} 
+1

谢谢。但我没有选择这个图书馆,我的项目经理呢! – pyprism

1

你需要的属性发现者分开:

$html->find("a[class='autoindex_a'][class='snap_shots']") 

以一个点.分离或分离类:

$html->find('a.autoindex_a.snap_shots') 
+2

用点分离doens't没有为我工作。 – nevermind