2012-11-21 136 views
0

有如下格式的HTML文檔:刮HTML中使用simple_html_dom.php庫

<div....> 
    <map name="blah" 
      . 
      . 
    /> 
    <map name="blah2" 
      . 
      . 
    /> 
</div> 

我想總是檢索第二映射。但是,我想完全充滿活力。

$url = $_GET['url']; 
$html_content = getHTML($url); 
$html = str_get_html($html_content); 

$map = $html->find('map[name=blah2]'); 

上述線條工作得很好。 但正如我之前提到的,我不想手動給出這個名字。我只是想總拿第二張地圖。而且我還想檢索地圖的名稱。

任何想法?

p.s.下面的代碼不起作用。我以前試過這個。並且不顯示地圖下的內容。然而,正確返回地圖

$map = $html->find('map',1); 

回答

1

關於什麼的名字:

$map = $html->find('map', 1); 
echo $map->name; 
1

這是很容易:

$map = $html->find('map',1); 
if($map != null) 
    $name = $map->name; 

你只是不得不look

1

您可以使用jQuery的端口,如PHPQuery http://code.google.com/p/phpquery/這將使你的EQ()選擇,將使相當豐富的XML的處理一般

+0

+1感謝!我不知道這一點。它看起來像一個非常好的項目[〜500顆星]。 – Prasanth

+0

唯一的問題是它似乎已經作爲一個項目去世了:/但是我已經在一個非常複雜的CMS系統中使用過,這個CMS系統以一些彎曲的方式來操作和構建HTML,並且從未遇到任何重大問題。 – Sqoo