2013-03-03 4 views
0

Я пытаюсь очистить две разные вещи от страницы, если я только очищаю ссылки, тогда я могу сделать foreach и получить ссылки, но также хочу, чтобы название, которое также представляет эту ссылку.Scrape Two Elements

Вот пример разметки страницы

<div id="parent"> 
<span id="title">Title</span> 


<div id="Two"> 
<a href="somelink">Somelink</a> 
</div> 
</div> 

Вот пример просто получать названия и ссылки

foreach($html->find('div[id=Two] a') as $a){ 
echo $a->href; 
} 

foreach($html->find('span[id=title]') as $az){ 
echo $az->plaintext; 
} 

Но мне нужно их в одном цикле, так что я могу иметь название и его соответствующая ссылка

Что-то вроде

foreach($html->find('span['id=title'] as $a, div[id=Two] a') as $aa){ 

Хотя это не будет работать

Im используя простой HTML DOM

ответ

0

Я думаю, что это должно работать при условии, что всегда есть и название и ссылка:

$links = $html->find('div[id=Two] a'); 
$titles = $html->find('span[id=title]'); 

foreach ($links as $i => $a) 
{ 
    echo $titles[$i]->plaintext; 
    echo $a->href; 
} 
0

Не тестировался на всех, но что-то как это должно работать. Возможно, вам придется добавить проверки проверки, чтобы гарантировать, что у каждого заголовка есть ссылка.

foreach($html->find('div[id=parent]') as $parent) { 
    $title = $parent->find('span[id=title]')->plaintext; 
    $href = $parent->find('div[id=Two] a')->href; 

    echo $title . ': ' . $href . '<br />'; 
} 
+0

Doesnt эхо из ничего –

+0

В этом случае это не находя никакого 'Div [ID = родитель]' ы - они определенно ID'ed? – Joe