получить HTML элемент по значению атрибута в php

Мне нужно извлечь некоторые данные с веб-страницы с помощью php. Интересующая меня часть структурирована примерно так:

<a href="somepath" target="fruit">apple</a>
<a href="somepath" target="animal">cat</a>
<a href="somepath" target="fruit">orange</a>
<a href="somepath" target="animal">dog</a>
<a href="somepath" target="fruit">mango</a>
<a href="somepath" target="animal">monkey</a>

Сначала я хочу извлечь все фрукты, а затем всех животных, чтобы они были хорошо сгруппированы.

Я придумал, как перебрать все значения атрибутов. Вот код:

$dom = new DOMDocument();
$html = file_get_contents('example.html');

@$dom->loadHTML($html);

$a = $dom->getElementsByTagName('a');

for ($i; $i < $a->length; $i++) {
$attr = $a->item($i)->getAttribute('target');

echo $attr . "\n";
}

Таким образом, я получаю:

fruit animal fruit animal fruit animal

Я также нашел, как получить текстовое содержимое элементов:

$a->item($i)->textContent

Итак, если включить в цикл и передать эхом, я получаю:

apple cat orange dog mango monkey

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

if ( target = "fruit") then give me "apple, orange, mango".

Кто-нибудь может направить меня в нужном направлении?

Спасибо.

10
задан stillenat 6 December 2011 в 04:58
поделиться