Я только начинаю с упомянутого Parser и как-то работает на проблемах непосредственно с самого начала.Найти div с классом, используя PHP Простой HTML DOM Parser
Ссылаясь на этот учебник:
Я хочу сейчас просто найти в содержании исходного кода TNE в виде DIV с классом ClearBoth Box
я получить код с завитком и создать простой HTML DOM объект:
$cl = curl_exec($curl);
$html = new simple_html_dom();
$html->load($cl);
Затем я хотел бы добавить содержимое DIV в массиве называется дива:
$divs = $html->find('div[.ClearBoth Box]');
Но теперь, когда я print_r в $ дивы, это дает гораздо больше, несмотря на то, что исходный код имеет не более внутри дел.
Как это:
Array
(
[0] => simple_html_dom_node Object
(
[nodetype] => 1
[tag] => br
[attr] => Array
(
[class] => ClearBoth
)
[children] => Array
(
)
[nodes] => Array
(
)
[parent] => simple_html_dom_node Object
(
[nodetype] => 1
[tag] => div
[attr] => Array
(
[class] => SocialMedia
)
[children] => Array
(
[0] => simple_html_dom_node Object
(
[nodetype] => 1
[tag] => iframe
[attr] => Array
(
[id] => ShowFacebookButtons
[class] => SocialWeb FloatLeft
[src] => http://www.facebook.com/plugins/xxx
[style] => border:none; overflow:hidden; width: 250px; height: 70px;
)
[children] => Array
(
)
[nodes] => Array
(
)
Я не понимаю, почему $ дивы есть не просто код с DIV?
Вот пример исходного кода на сайте:
<div class="ClearBoth Box">
<div>
<i class="Icon SmallIcon ProductRatingEnabledIconSmall" title="gute peppige Qualität: Sehr empfehlenswert"></i>
<i class="Icon SmallIcon ProductRatingEnabledIconSmall" title="gute peppige Qualität: Sehr empfehlenswert"></i>
<i class="Icon SmallIcon ProductRatingEnabledIconSmall" title="gute peppige Qualität: Sehr empfehlenswert"></i>
<i class="Icon SmallIcon ProductRatingEnabledIconSmall" title="gute peppige Qualität: Sehr empfehlenswert"></i>
<i class="Icon SmallIcon ProductRatingEnabledIconSmall" title="gute peppige Qualität: Sehr empfehlenswert"></i>
<strong class="AlignMiddle LeftSmallPadding">gute peppige Qualität</strong> <span class="AlignMiddle">(17.03.2013)</span>
</div>
<div class="BottomMargin">
gute Verarbeitung, schönes Design,
</div>
</div>
Что я делаю неправильно?
Спасибо так много! Теперь я немного дальше! В моем случае, поскольку имя класса состоит из двух частей «ClearBoth Box», я должен использовать: div [class = ClearBoth Box], потому что div.ClearBoth Box ищет элемент Box после div, и только div.ClearBoth возвращает больше совпадений, чем Мне нужно. – Owl
Что делать, если мой div не имеет имени класса? Я хочу, чтобы все div на странице? – amitchhajer
@amitchhajer Вы либо находите элемент с уникальным идентификатором выше или ниже для вашего div в вопросе, а затем больше с дочерним, родительскими методами или вы печатаете внешний текст того, где вы находитесь (объект dom), и подсчитываете, сколько divs есть до тот, который вам нужен, и получить к нему доступ через его номер. 4-й div = dom-> find ('div', 3); –