Что нового

Как выделить нужный селектор span.class, если на веб-странице много подобных?

Нубокодер

Новичок
Сообщения
75
Репутация
0
Код:
$oSpans = _IETagNameGetCollection($oIE, 'span')
    For $oSpan In $oSpans
        If $oSpan.classname == "example" Then
            $sResult = $oSpan.innertext
            ExitLoop
        EndIf
    Next


Проблема в том, что на веб-странице несколько селекторов типа span.example и выделяется первый из них. А мне нужен вот этот:

Код:
<div class="animals" style=...>
  <p>"Царь лесов: "<span class="example">медведь</span></p>
  <p>"Колючий шнырь: "<span class="...">ёжик</span></p>
  ...
  <p>"Хитрый зверь: "<span class="...">лиса</span></p>
</div>

Можно ли его вытащить, уточнив поиск по class="animals" или даже просто абзацу <p>? Подскажите как обратиться конкретно к <span class="example">медведь</span>.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Как выделить нужный селектор span, если на веб-странице много подобных?

Нубокодер,
Ищите сначала все теги div, так же проверяйте в цикле на classname "animals" , если нашли, ищите внутри этого div span class="example".

Код написать или сами?
 
Автор
Нубокодер

Нубокодер

Новичок
Сообщения
75
Репутация
0
Re: Как выделить нужный селектор span, если на веб-странице много подобных?

madmasles сказал(а):
Нубокодер,
Ищите сначала все теги div, так же проверяйте в цикле на classname "animals" , если нашли, ищите внутри этого div span class="example".

Код написать или сами?

Алгоритм я понимаю. Просто не знаю команд и их формата. Ну, если не сложно, то напишите код.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Нубокодер,
Попробуйте сделать примерно так.
Код:
Local $oDivs, $oSpans, $sResult
;~ ...
$oDivs = _IETagNameGetCollection($oIE, 'div')
For $oDiv In $oDivs
	If $oDiv.ClassName == 'animals' Then
		$oSpans = _IETagNameGetCollection($oDiv, 'span')
		For $oSpan In $oSpans
			If $oSpan.ClassName == 'example' Then
				$sResult = $oSpan.innertext
				ExitLoop 2
			EndIf
		Next
	EndIf
Next
;~ ...
 
Верх